Tag: C#的

将枚举转换为List <string>

如何将下面的枚举转换为string列表? [Flags] public enum DataSourceTypes { None = 0, Grid = 1, ExcelFile = 2, ODBC = 4 }; 我无法find这个确切的问题,这个枚举到列表是最接近的,但我特别希望List<string>

什么是Cmacros有用?

我已经写了一些C ,我可以很好地阅读它,以便大致了解它在做什么,但是每次遇到一个macros,它都会把我完全抛到脑后。 我最终不得不记得这个macros是什么,并且在我读的时候把它代入我的脑海。 我遇到的那些直观易懂的东西,总是像小小的function,所以我一直在想,为什么它们不只是function。 我可以理解,需要为预处理器中的debugging或跨平台构build定义不同的构buildtypes,但是定义任意replace的能力似乎仅用于使已经很难理解的语言更难以理解。 为什么为C引入这样一个复杂的预处理器? 还有没有人有一个使用它的例子,这将使我明白为什么它似乎仍然被用于除了简单的目的以外#debug样式条件编译? 编辑: 读了一些答案,我仍然不明白。 最常见的答案是内联代码。 如果inline关键字没有这样做,那么它有一个很好的理由不这样做,或实施需要修复。 我不明白为什么需要一个完全不同的机制,这意味着“真正内联这个代码”(除了内联之前的代码)。 我也不理解被提到的“如果太愚蠢的function”的想法。 当然,任何接受input和产生输出的代码最好放在一个函数中。 我想我可能没有得到它,因为我不习惯写C的微观优化,但预处理器只是一个复杂的解决scheme,几个简单的问题。

QVector与QList

我有一个整数列表,我需要迭代,但一个数组是不够的。 向量和列表之间有什么区别,在selecttypes之前有什么我需要知道的? 只是要清楚,我已经阅读了QT文档,但这是我所知道的程度: QList,QLinkedList和QVector提供了类似的function。 这里有一个概述: 对于大多数目的,QList是正确的类。 它的基于索引的API比QLinkedList的基于迭代器的API更方便,并且由于它将项目存储在内存中的方式通常比QVector更快。 它也扩展到更less的代码在您的可执行文件。 如果你需要一个真正的链表,保证在列表中间有恒定的时间插入,迭代器可以保证项目而不是索引,可以使用QLinkedList。 如果你想要项目占用相邻的内存位置,使用QVector。

为什么我不能引用System.ComponentModel.DataAnnotations?

我想在我的WPF项目中使用DataAnnotations指定string的最大长度,具体如下: using System.ComponentModel.DataAnnotations; 但是,我得到的错误 名称空间“System.ComponentModel”中不存在types或名称空间名称“DataAnnotations”(是否缺less程序集引用?) 我已经看到了DataAnnotations存在于这个命名空间的其他例子。 我正在使用C#4。 有什么理由不能用这个吗? 我能做些什么来解决它?

迭代器和枚举器之间的区别

一个.NET 3.5作业的面试问题是“迭代器和枚举器有什么区别”? 这是一个核心区别,用LINQ来做什么等等。 无论如何,有什么区别? 我似乎无法在网上find一个可靠的定义。 没有错,我可以find两个术语的含义,但我得到的答案略有不同。 面试的最佳答案是什么? IMO一个迭代器“迭代”一个集合,一个枚举器提供迭代的function,但是这个必须被调用。 而且,使用yield关键字被认为是保存状态。 这个状态到底是什么? 有没有这种好处发生的例子?

为什么(以及何时)需要在sizeof之后使用圆括号?

下面的代码不能编译: typedef int arr[10]; int main(void) { return sizeof arr; } sizeof.c:3: error: expected expression before 'arr' 但如果我改变它 sizeof(arr); 一切安好。 为什么?

为什么argc是'int'(而不是'unsigned int')?

为什么命令行参数计数variables(传统上是“argc”)是一个'int'而不是'unsigned int'? 有这个技术原因吗? 当我试图摆脱所有签名的无符号比较警告时,我总是忽略它,但从来没有理解为什么它是这样的。

如何在XAML中围绕控制中心旋转

我想旋转button到90度,但它会被剪裁,因为它旋转arount(0,0)。 如果我不知道它的像素宽度(这是许多button的模板)如何使其围绕中心旋转,

在类似于NUnit的xUnit.net中testing参数化

有没有类似于NUnit的以下function的xUnit.net框架中的任何手段? [Test, TestCaseSource("CurrencySamples")] public void Format_Currency(decimal value, string expected){} static object[][] CurrencySamples = new object[][] { new object[]{ 0m, "0,00"}, new object[]{ 0.0004m, "0,00"}, new object[]{ 5m, "5,00"}, new object[]{ 5.1m, "5,10"}, new object[]{ 5.12m, "5,12"}, new object[]{ 5.1234m, "5,12"}, new object[]{ 5.1250m, "5,13"}, // round new object[]{ 5.1299m, "5,13"}, // round } 这将在NUnit GUI中生成8个单独的testing […]

SmtpException:无法从传输连接读取数据:net_io_connectionclosed

我正在使用SmtpClient库来发送电子邮件使用以下内容: SmtpClient client = new SmtpClient(); client.Host = "hostname"; client.Port = 465; client.DeliveryMethod = SmtpDeliveryMethod.Network; client.UseDefaultCredentials = false; client.EnableSsl = true; client.Credentials = new NetworkCredential("User", "Pass); client.Send("from@hostname", "to@hostname", "Subject", "Body"); 代码在我的testing环境中工作正常,但是当我使用生产SMTP服务器时,代码失败,出现SmtpException “发送邮件失败”。 内部IOException “无法从传输连接读取数据:net_io_connectionclosed”。 我已经确认防火墙不是问题。 端口在客户端和服务器之间打开就好了。 我不知道还有什么可以抛出这个错误。