Tag: C#的

当一个属性不能为null时使用什么exceptiontypes?

在我的应用程序中,如果特定类的属性为null或空(如果是string),则需要引发exception。 我不确定在这种情况下使用什么是最好的例外。 我讨厌创build一个新的exception,我不确定在这种情况下ArgumentNullException是否合适。 我应该创build一个新的exception还是有我可以使用的exception? 我不介意抛出一个ApplicationException。

将System.Array转换为string

我有一个System.Array,我需要转换为string[]。 有没有更好的方法来做到这一点,只是循环访问数组,每个元素调用ToString,并保存到一个string[]? 问题是我不一定知道元素的types,直到运行时。

(void)“variables名”在C函数的开头是做什么的?

我正在阅读FUSE的示例代码: http://fuse.sourceforge.net/helloworld.html 而且我无法理解下面的代码片段的作用: static int hello_readdir(const char *path, void *buf, fuse_fill_dir_t filler, off_t offset, struct fuse_file_info *fi) { (void) offset; (void) fi; 具体来说就是(void)“variables名”的东西。 我之前从来没有在C程序中看到过这种构造,所以我甚至不知道要在Googlesearch框中input什么内容。 我目前最好的猜测是,它是某种未使用的函数参数的说明符? 如果有人知道这是什么,可以帮助我,这将是伟大的。 谢谢!

以编程方式检测物理处理器/内核的数量,或者如果Windows,Mac和Linux上的超线程处于活动状态

我有一个multithreading的c + +应用程序,运行在Windows,Mac和一些Linux的风味。 长话短说:为了以最高效率运行,我必须能够实例化每个物理处理器/内核的单个线程。 创build比物理处理器/内核更多的线程会大大降低程序的性能。 我已经可以在所有这三个平台上正确检测到逻辑处理器/内核的数量。 为了能够正确检测物理处理器/内核的数量,我们必须检测是否支持超级执行并且处于活动状态。 因此,我的问题是,如果有一种方法来检测是否支持超线程和启用? 如果是这样,究竟如何。

编辑并继续function在Visual Studio 2010中停止工作

Visual Studio编辑并继续function在Visual Studio 2010上停止,我不知道是什么导致了这个问题。 我正在使用C#处理Windows应用程序。 此应用程序最初是在Visual Studio 2008中开发的,后来升级到Visual Studio 2010。 一切工作正常,包括编辑和继续,直到我将.NET Framework从3.5升级到4.0。 现在,当我使用debugging模式时,更改IDE中的任何代码行将导致以下消息: 编辑不能编译。 编译错误修复之前,执行无法继续。 实际上,没有编译错误,我必须重新启动Visual Studio才能运行更新。 我如何获得编辑并继续工作?

'((void(*)())0x1000)();`是什么意思?

这里是一个代码,目的是设置程序计数器跳转到地址0x1000 。 我知道它做了什么,但我不明白如何。 这与我缺乏C语言知识有关。 可能是你可以开导我。 这里是声明/函数(我甚至不知道它是什么:)) ((void (*)())0x1000)(); 我的事情是指向一个返回void和不接受任何参数的函数的指针。 如果我错了,请纠正我。

C#ICollection获得单个值

从ICollection获取价值的最佳方式是什么? 除此之外,我们知道集合是空的。

合并两个IEnumerable <T>

我有两个IEnumerable<T> s。 一个充满了后备ellements。 这一个将永远包含最多的元素。 另一个将根据一些参数得到填充,并可能包含更less的元素。 如果第二个元素不存在,我需要用第一个元素填充它。 此代码完成这项工作,但感觉效率低下,并要求我将IEnumerables投给IList或使用临时列表Person实现IEquatable IEnumerable<Person> fallBack = Repository.GetPersons(); IList<Person> translated = Repository.GetPersons(language).ToList(); foreach (Person person in fallBack) { if (!translated.Any(p=>p.equals(person))) translated.add(person); } 有什么build议么?

通用类的文件名约定

我希望能够区分类的通用和常规(非通用)版本。 就像.NET框架一样,它是它的几个接口和集合类的通用和非通用版本。 ( 队列 , 队列(T) ) 我通常喜欢遵循每个文件一个类的约定(如在Java中)。 命名包含单个generics类的文件是否有一个通用约定? 我主要感兴趣的是Windows(特别是NTFS),但是看起来好像是一个很好的约定(至less是一点点)。

如果我的传入date格式是YYYYMMDD,则在.NET中将string转换为date

如果我的传入date格式是YYYYMMDD那么在C#中将string转换为date的最佳方法是什么? 例如: 20001106