Questions tagged «.net»

请勿使用有关.NET Core的问题,而应使用[.net-core]。.NET框架是主要为Microsoft Windows操作系统设计的软件框架。它包括基类库,公共语言运行时(通常称为CLR),公共类型系统(通常称为CTS)和动态语言运行时的实现。它支持多种编程语言,包括C#,VB.NET,F#和C ++ / CLI。


29
如何枚举枚举
Наэтотвопросестьответына 堆栈溢出нарусском:的foreach()для枚举 您如何枚举enumC#? 例如,以下代码无法编译: public enum Suit { Spades, Hearts, Clubs, Diamonds } public void EnumerateAllSuitsDemoMethod() { foreach (Suit suit in Suit) { DoSomething(suit); } } 并且它给出了以下编译时错误: “西装”是“类型”,但像“变量”一样使用 Suit关键字第二个失败。
3763 c#  .net  loops  enums  enumeration 


30
深度克隆对象
我想做类似的事情: MyObject myObj = GetMyObj(); // Create and fill a new object MyObject newObj = myObj.Clone(); 然后对未反映在原始对象中的新对象进行更改。 我通常不需要此功能,因此在必要时,我会先创建一个新对象,然后分别复制每个属性,但是它总是让我感到有更好或更优雅的处理方式情况。 如何克隆或深度复制对象,以便可以修改克隆的对象而不会在原始对象中反映任何更改?
2226 c#  .net  clone 

30
如何在不手动指定编码的情况下在C#中获得字符串的一致字节表示形式?
如何转换string为byte[]在.NET(C#),而无需手动指定一个特定的编码? 我将对字符串进行加密。我可以加密而不进行转换,但是我仍然想知道为什么编码在这里起作用。 另外,为什么还要考虑编码?我不能简单地获取字符串存储在哪个字节中?为什么要依赖字符编码?

28
一次捕获多个异常?
不建议简单地抓住System.Exception。相反,仅应捕获“已知”异常。 现在,这有时会导致不必要的重复代码,例如: try { WebId = new Guid(queryString["web"]); } catch (FormatException) { WebId = Guid.Empty; } catch (OverflowException) { WebId = Guid.Empty; } 我想知道:有没有一种方法可以捕获两个异常并且只WebId = Guid.Empty调用一次电话? 给定的示例非常简单,因为它只是一个GUID。但是,请设想一下代码中多次修改对象的情况,如果其中一种操作以预期的方式失败,则您想“重置” object。但是,如果有意外的例外,我仍然想将其提高。




28
什么是NullReferenceException,如何解决?
这个问题的答案是社区的努力。编辑现有答案以改善此职位。它目前不接受新的答案或互动。 堆栈溢出语法:否NullReferenceException, 请参见堆栈溢出? 我有一些代码,执行时会抛出NullReferenceException,说: 你调用的对象是空的。 这是什么意思,我该怎么做才能解决此错误?


19
正确使用IDisposable接口
通过阅读Microsoft文档,我知道IDisposable接口的“主要”用途是清理非托管资源。 对我来说,“非托管”意味着诸如数据库连接,套接字,窗口句柄之类的东西。但是,我已经看到了Dispose()实现该方法以释放托管资源的代码,这对我来说似乎是多余的,因为垃圾收集器应该处理为你。 例如: public class MyCollection : IDisposable { private List<String> _theList = new List<String>(); private Dictionary<String, Point> _theDict = new Dictionary<String, Point>(); // Die, clear it up! (free unmanaged resources) public void Dispose() { _theList.clear(); _theDict.clear(); _theList = null; _theDict = null; } 我的问题是,这是否会使垃圾收集器释放可用内存的MyCollection速度比正常情况更快? 编辑:到目前为止,人们已经发布了一些使用IDisposable清理数据库,数据库连接和位图等非托管资源的良好示例。但是假设_theList在上面的代码中包含上百万字符串,你想释放内存现在,而不是等待垃圾回收器。上面的代码能做到吗?

30
我该如何解决“断点当前不会被击中。该文档尚未加载任何符号。” 警告?
速成版上的C#桌面应用程序正常工作,然后5秒钟后不工作。 我尝试了以下方法: 确保在所有程序集上都设置了调试配置,调试标志和完整的调试信息。 从我的整个计算机上删除所有与项目相关的bin和obj文件夹以及所有DLL。 重新创建引起问题的项目。 重启。 我在解决方案中有两个WinForms项目。其中一个加载调试信息,一个不加载。它们都引用我正试图以完全相同的方式在项目文件中获取调试信息的程序集。有任何想法吗? 我想在这里添加,主要是为我自己添加,当我再次回顾此问题时,符号将在加载程序集之前加载,并且在需要时才加载。如果该断点位于仅在主程序集中的一个函数中使用的库中,则在调用该函数之前,不会加载符号(并且该断点将被显示为未命中)。

5
尝试捕获加快我的代码?
我编写了一些代码来测试try-catch的影响,但是看到了一些令人惊讶的结果。 static void Main(string[] args) { Thread.CurrentThread.Priority = ThreadPriority.Highest; Process.GetCurrentProcess().PriorityClass = ProcessPriorityClass.RealTime; long start = 0, stop = 0, elapsed = 0; double avg = 0.0; long temp = Fibo(1); for (int i = 1; i < 100000000; i++) { start = Stopwatch.GetTimestamp(); temp = Fibo(100); stop = Stopwatch.GetTimestamp(); elapsed …

20
重写GetHashCode的最佳算法是什么?
在.NET中,该GetHashCode方法整个.NET基类库中的许多地方都使用。正确实施它对于在集合中或确定相等性时快速查找项目尤为重要。 有没有关于如何GetHashCode为我的自定义类实现的标准算法或最佳实践,因此我不会降低性能?

By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.