Tag: C#的

fread是如何工作的?

fread的声明如下: size_t fread(void *ptr, size_t size, size_t nmemb, FILE *stream); 问题是:两个这样的fread调用的阅读性能有差异: char a[1000]; fread(a, 1, 1000, stdin); fread(a, 1000, 1, stdin); 它会一次读取1000个字节吗?

C#/ Linq:将映射函数应用于IEnumerable中的每个元素?

我一直在寻找一种方法来使用映射函数(以Linq兼容的方式)将IEnumerable的每个元素转换成别的东西,但是我没有find任何东西。 对于一个(非常简单的)例子,它应该能够做类似的事情 IEnumerable<int> integers = new List<int>() { 1, 2, 3, 4, 5 }; IEnumerable<string> strings = integers.Transform(i => i.ToString()); 但我没有find任何东西。 我的意思是,编写一个扩展方法是非常简单的(基本上,它只需要将源枚举器封装到一个新的类中,然后编写一些委托给它的样板代码),但是我期望这是一个相当基本的操作,写自己感觉就像重新发明轮子 – 我不能动摇这种感觉,可能有一个我应该使用的内置方式,我只是太盲目,看不到它。 所以… Linq有什么东西可以让我做上面描述的吗?

什么是Haskell中的C#相当于map函数

Haskell中的map函数有两个input参数。 第一个参数是一个函数,第二个参数是一个列表。 map函数将作为inputparameter passing的函数应用于列表中的所有元素,并返回一个新列表。 有没有一个C#相当于这个function?

将NULL传递给构造函数

我不明白为什么构造函数与参数Double[] ? using System.Collections.Generic; using System.Linq; using System.Text; namespace MyConsoleApp { class Program { static void Main(string[] args) { D myD = new D(null); Console.ReadLine(); } } public class D { public D(object o) { Console.WriteLine("Object"); } public D(double[] array) { Console.WriteLine("Array"); } public D(int i) { Console.WriteLine("Int"); } } } 我认为,因为第一个构造函数采用引用types的参数。 带引用参数的第一个构造函数,因为null是引用types的默认值。 但我不明白为什么不object ,这也是一个参考types。

C#中的“this ”是什么意思?

我正在通过一些库代码,看到一个方法,如: public CollapsingRecordNodeItemList List { get { return this[0] as CollapsingRecordNodeItemList; } } 包含这个方法的类不是一个列表或者可迭代的东西,那么this[0]究竟意味着什么呢?

在asp.netpath中使用波浪号(〜)

我正在一个asp.net应用程序,下面的链接工作在IE中,但不是在FF。 <a href="~/BusinessOrderInfo/page.aspx" > 是不是只能在asp.net服务器控件中使用的代字符。 哪里会被实际的path取代? 是否有可能在锚标签中使用代字号? 如果是这是什么意思? 当我在根,链接工程 www.myserver.com/default.aspx, click the link, ok! www.myserver.com/otherpart/default.aspx, click the link, not ok! ASP.NET生成的链接是: www.myserver.com/otherpart/~BusinessOrderInfo/page.aspx 这是由devise?

如果预处理器指令嵌套在C ++中,

我有一个关于在C ++预处理器指令的问题: 例如: #ifndef QUESTION //some code here #ifndef QUESTION //some code here #endif #endif 我们可以这样使用它,并且C ++编译器能否以正确的方式匹配ifndef和endif ?

从OpenFileDialogpath/文件名提取path

我正在写一个实用工具,从select文件开始,然后我需要select一个文件夹。 我想默认文件夹到所选文件的位置。 OpenFileDialog.FileName返回完整的path和文件名 – 我想要的只是获得path部分(sans文件名),所以我可以使用它作为初始选定的文件夹 private System.Windows.Forms.OpenFileDialog ofd; private System.Windows.Forms.FolderBrowserDialog fbd; … if (ofd.ShowDialog() == DialogResult.OK) { string sourceFile = ofd.FileName; string sourceFolder = ???; } … fbd.SelectedPath = sourceFolder; // set initial fbd.ShowDialog() folder if (fbd.ShowDialog() == DialogResult.OK) { … } 有没有.NET方法来做到这一点,或者我需要使用正则expression式,拆分,修剪等?

我怎样才能在WinForms应用程序中捕获所有“未处理”的exception呢?

到目前为止,我只是在Application.Run的Program.cs入口点的Application.Run周围放置了一个try / catch块。 这在debugging模式下捕获了所有的exception,但是当我在没有debugging模式的情况下运行程序时,exception不再被处理。 我得到未处理的exception框。 我不想要这样的事情发生。 我希望在非debugging模式下运行时捕获所有exception。 该程序有多个线程,最好所有的exception都被同一个处理程序捕获。 我想在数据库中loggingexception。 有没有人有任何build议如何做到这一点?

为什么我们可以在`const`对象上使用`std :: move`?

在C ++ 11中,我们可以编写这样的代码: struct Cat { Cat(){} }; const Cat cat; std::move(cat); //this is valid in C++11 当我打电话std::move ,这意味着我想要移动的对象,即我将改变对象。 移动一个const对象是不合理的,为什么std::move不会限制这个行为? 这将是一个陷阱,对吧? 这里的陷阱就像布兰登在评论中提到的那样: “我认为他的意思是”欺骗“他偷偷摸摸的偷偷摸摸,因为如果他没有意识到的话,他最终会得到一个不是他想要的副本。 在Scott Meyers的“Effective Modern C ++”一书中,他举了一个例子: class Annotation { public: explicit Annotation(const std::string text) : value(std::move(text)) //here we want to call string(string&&), //but because text is const, //the return type of std::move(text) is […]