Tag: C#的

TargetedPatchingOptOut:“在NGen图像边界上内联的性能至关重要”?

经历了一些使用reflection器的框架类,并注意到一些方法和属性具有以下属性 [TargetedPatchingOptOut("Performance critical to inline across NGen image boundaries")] 我很确定我也在别的地方看过上面的评论,从来没有跟上过。 有人可以告诉我这是什么意思,在C#和任何其他上下文?

从IEnumerable <KeyValuePair <>>重新创build一个字典

我有一个方法返回一个IEnumerable<KeyValuePair<string, ArrayList>> ,但一些调用者要求方法的结果是一个字典。 如何将IEnumerable<KeyValuePair<string, ArrayList>>转换为Dictionary<string, ArrayList>以便我可以使用TryGetValue ? 方法: public IEnumerable<KeyValuePair<string, ArrayList>> GetComponents() { // … yield return new KeyValuePair<string, ArrayList>(t.Name, controlInformation); } 呼叫者: Dictionary<string, ArrayList> actual = target.GetComponents(); actual.ContainsKey("something");

指针指针的指针

我正在关注这个教程如何指针指针工作。 让我引用有关的一段话: int i = 5, j = 6, k = 7; int *ip1 = &i, *ip2 = &j; 现在我们可以设置 int **ipp = &ip1; ipp指向ip1 ,指向i 。 *ipp是ip1 , **ipp是i或5.我们可以用我们熟悉的方框和箭头符号来说明情况,如下所示: 如果那我们说 *ipp = ip2; 我们已经改变了由ipp指向的指针(即ip1 )以包含ip2的副本,以便它( ip1 )现在指向j : 我的问题是:为什么在第二张图片中, ipp仍然指向ip1而不是ip2 ?

从包含文件名的path获取没有文件名的完整path

System.IO.Path中是否有内build的东西只给我一个文件path? 例如,如果我有一个string @ “C:\networking服务器\ PUBLIC \ myCompany的\ CONFIGS \ promo.xml” 有什么BCL的方法会给我的 “C:\networking服务器\ PUBLIC \ myCompany的\ CONFIGS \”?

应该枚举在C#有自己的文件?

我有一个使用枚举的类,枚举目前在它自己的文件,这似乎是浪费。 什么是关于枚举的一般意见被放在文件的命名空间,他们被消耗? 还是应该枚举真的生活在自己的CS文件? 编辑 我应该提到,虽然有问题的类使用这些枚举,但外部调用者也使用这些枚举。 换句话说,另一个类可以设置这些枚举。 所以他们不是在课堂上内部使用,否则这个问题将是一个明智之举。

为什么.NET的foreach循环抛出NullRefException当收集为空?

所以我经常遇到这种情况… Do.Something(…)返回一个Do.Something(…) ,如下所示: int[] returnArray = Do.Something(…); 然后,我尝试像这样使用这个集合: foreach (int i in returnArray) { // do some more stuff } 我只是好奇,为什么不能在一个空收集的foreach循环操作? 对我来说这似乎合乎逻辑,0迭代将被执行一个NullReferenceException …相反,它会抛出一个NullReferenceException 。 任何人都知道为什么这可能是? 这是令人讨厌的,因为我正在使用那些不清楚它们返回的API,所以我最终以if (someCollection != null)到处都是。 编辑:谢谢大家解释, foreach使用GetEnumerator ,如果没有枚举器得到,foreach将失败。 我想我问为什么语言/运行时不能或不会做一个空检查,然后抓住枚举。 在我看来,这种行为仍然是明确的。

计算string中的字符出现次数

如何计算像"bla_bla_blabla_bla"这样的string中的"_"的数量?

捕获活动窗口的截图?

我正在制作一个屏幕捕捉应用程序,一切都很好。 我需要做的就是捕获活动窗口并截取这个活动窗口。 有谁知道我怎么能做到这一点?

如何删除文件后,检查是否存在

我怎样才能删除C#文件,例如C:\test.txt ,尽pipe像batch file中应用相同的方法,例如 if exist "C:\test.txt" delete "C:\test.txt" else return nothing (ignore)

为什么C#不支持引用的返回?

我读过.NET支持引用的返回,但C#不支持。 有特别的原因吗? 为什么我不能做这样的事情: static ref int Max(ref int x, ref int y) { if (x > y) return ref x; else return ref y; }