Tag: C#的

C#可选参数在重写的方法

在.NET Framework中看起来像覆盖该方法时可选参数存在问题。 下面的代码的输出是:“bbb”“aaa”。 但是我期望的输出是:“bbb”“bbb”。是否有解决scheme。 我知道它可以解决方法重载,但不知道这个原因。 此外代码工作正常在单声道。 class Program { class AAA { public virtual void MyMethod(string s = "aaa") { Console.WriteLine(s); } public virtual void MyMethod2() { MyMethod(); } } class BBB : AAA { public override void MyMethod(string s = "bbb") { base.MyMethod(s); } public override void MyMethod2() { MyMethod(); } } static void […]

AddBusinessDays和GetBusinessDays

我需要find2个完美的完整实现 public static DateTime AddBusinessDays(this DateTime date, int days) { // code here } and public static int GetBusinessDays(this DateTime start, DateTime end) { // code here } O(1)更好(没有循环)。 编辑:工作日我的意思是工作日(星期一,星期二,星期三,星期四,星期五)。 没有假期,只是周末排除在外。 我已经有一些丑陋的解决scheme似乎工作,但我不知道是否有优雅的方式来做到这一点。 谢谢 这是我迄今写的。 它在所有情况下都能正常工作,并且也能做到负面 仍然需要一个GetBusinessDays实现 public static DateTime AddBusinessDays(this DateTime startDate, int businessDays) { int direction = Math.Sign(businessDays); if(direction == 1) { if(startDate.DayOfWeek == […]

如何使用迭代器?

我试图计算两点之间的距离。 我用C ++存储在vector中的两点:(0,0)和(1,1)。 我应该得到的结果 0 1.4 1.4 0 但是我得到的实际结果是 0 1 -1 0 我认为在向量中使用迭代器的方式有些问题。 我该如何解决这个问题? 我发布了下面的代码。 typedef struct point { float x; float y; } point; float distance(point *p1, point *p2) { return sqrt((p1->x – p2->x)*(p1->x – p2->x) + (p1->y – p2->y)*(p1->y – p2->y)); } int main() { vector <point> po; point p1; p1.x = […]

从.NET控制台调用JSON WebService的最佳方法

我在ASP.Net MVC3中托pipe一个Web服务,它返回一个Jsonstring。 从ac#console应用程序调用webservice的最佳方法是什么,并将返回parsing为一个.NET对象? 我应该在我的控制台应用程序中引用MVC3吗? Json.Net有一些很好的序列化和反序列化.NET对象的方法,但是我没有看到它有从web服务的POSTing和GETing值的方法。 或者,我应该只是创build自己的帮助方法开机自检和获取到Web服务? 我如何将我的.net对象序列化为键值对?

什么是“… …”令牌的含义? 即参数包中的双省略号运算符

在浏览gcc当前的新C ++ 11头文件的过程中,我偶然发现了“……”令牌。 你可以检查,下面的代码编译罚款 [通过ideone.com]。 template <typename T> struct X { /* … */ }; template <typename T, typename … U> struct X<T(U……)> // this line is the important one { /* … */ }; 那么,这个令牌的含义是什么? 编辑:看起来像修剪“……”问题标题为“…”,我确实是指“……”。 🙂

XML序列化可序列化对象的通用列表

我可以序列化一个可序列化对象的通用列表,而不必指定它们的types。 类似于下面破碎的代码背后的意图: List<ISerializable> serializableList = new List<ISerializable>(); XmlSerializer xmlSerializer = new XmlSerializer(serializableList.GetType()); serializableList.Add((ISerializable)PersonList); using (StreamWriter streamWriter = System.IO.File.CreateText(fileName)) { xmlSerializer.Serialize(streamWriter, serializableList); } 编辑: 对于那些想知道详细信息的人:当我尝试运行这个代码时,它在XMLSerializer行上的错误是: 无法序列化接口System.Runtime.Serialization.ISerializable。 如果我更改为List<object> "There was an error generating the XML document."得到"There was an error generating the XML document." 。 InnerException细节为"{"The type System.Collections.Generic.List1[[Project1.Person, ConsoleFramework, Version=1.0.0.0, Culture=neutral, PublicKeyToken=null]] may not be used in this […]

用附件从C#发送电子邮件,附件到达Thunderbird的第1.2部分

我有一个C#应用程序,通过使用SMTP通过Exchange 2007服务器发送Excel电子表格报告。 这些邮件适用于Outlook用户,但是对于Thunderbird和Blackberry用户,附件已被重命名为“第1.2部分”。 我发现这篇文章描述了这个问题,但似乎并没有给我一个解决方法。 我没有Exchange服务器的控制权,所以不能在那里进行更改。 有什么我可以做的C#结束? 我曾尝试使用短文件名和HTML编码的身体,但都没有作出改变。 我的邮件发送代码是这样的: public static void SendMail(string recipient, string subject, string body, string attachmentFilename) { SmtpClient smtpClient = new SmtpClient(); NetworkCredential basicCredential = new NetworkCredential(MailConst.Username, MailConst.Password); MailMessage message = new MailMessage(); MailAddress fromAddress = new MailAddress(MailConst.Username); // setup up the host, increase the timeout to 5 minutes smtpClient.Host = MailConst.SmtpServer; […]

如何将char转换为C中的整数?

可能重复: 如何将单个字符转换为int C中的整数字符 任何机构可以告诉我如何将char转换为int ? char c[]={'1',':','3'}; int i=int(c[0]); printf("%d",i); 当我尝试这个时,它给49。

为什么C#默认将方法实现为非虚拟的?

与Java不同,为什么C#默认将方法视为非虚函数? 是否更可能成为绩效问题而不是其他可能的结果? 我想起了从Anders Hejlsberg那里读到一段关于现有架构带来的几个优点。 但是,副作用呢? 默认情况下有非虚拟方法真的是一个很好的权衡?

将XMLstring格式化为可打印的XMLstring

我有这样的XMLstring: <?xml version='1.0'?><response><error code='1'> Success</error></response> 一个元素与另一个元素之间没有线条,因此非常难以阅读。 我想要一个格式化上面的string的函数: <?xml version='1.0'?> <response> <error code='1'> Success</error> </response> 没有诉诸手动写自己的格式函数,有没有.Net库或代码片断,我可以使用非手?