Questions tagged «.net»

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

30
在C#或.NET中最糟糕的陷阱是什么?[关闭]
已关闭。这个问题需要更加集中。它当前不接受答案。 想改善这个问题吗?更新问题,使其仅通过编辑此帖子来关注一个问题。 5年前关闭。 我最近正在处理一个DateTime对象,并编写了如下内容: DateTime dt = DateTime.Now; dt.AddDays(1); return dt; // still today's date! WTF? 的intellisense文档AddDays()说,它在日期上添加了一天,但没有添加-实际上返回了一个日期,其中添加了一天,因此您必须这样写: DateTime dt = DateTime.Now; dt = dt.AddDays(1); return dt; // tomorrow's date 以前,这已经咬了我很多次,所以我认为对最糟糕的C#陷阱进行分类将很有用。
377 c#  .net 

18
将单个项目作为IEnumerable <T>传递
是否有一种常见的方法将单个类型的项目传递给T需要IEnumerable&lt;T&gt;参数的方法 ?语言是C#,框架版本2.0。 当前,我正在使用辅助方法(它是.Net 2.0,所以我有一堆类似于LINQ的强制转换/投影辅助方法),但这似乎很愚蠢: public static class IEnumerableExt { // usage: IEnumerableExt.FromSingleItem(someObject); public static IEnumerable&lt;T&gt; FromSingleItem&lt;T&gt;(T item) { yield return item; } } 当然,其他方法是创建并填充a List&lt;T&gt;或an Array并将其传递给而不是IEnumerable&lt;T&gt;。 [编辑]作为扩展方法,它可以命名为: public static class IEnumerableExt { // usage: someObject.SingleItemAsEnumerable(); public static IEnumerable&lt;T&gt; SingleItemAsEnumerable&lt;T&gt;(this T item) { yield return item; } } 我在这里想念什么吗? [Edit2]我们发现someObject.Yield()(如@Peter在下面的评论中所建议的)是此扩展方法的最佳名称,主要是为了简洁起见,因此,如果有人想要抓住它,它与XML注释一起使用: public …
377 c#  .net  generics  ienumerable 

30
什么是一些好的.NET Profiler?
已锁定。该问题及其答案被锁定,因为该问题是题外话,但具有历史意义。它目前不接受新的答案或互动。 在使用.net程序时,您使用了哪些分析器,特别推荐哪些?
374 c#  .net  profiling  profiler 

21
发现无法解决的相同从属程序集的不同版本之间的冲突
当我清理并构建具有多个项目的解决方案时,输出窗口将报告构建成功。但是,当我查看“ 错误列表窗口”时,它显示以下警告: 发现无法解决的相同从属程序集的不同版本之间的冲突。将日志详细程度设置为“详细”时,这些参考冲突会在构建日志中列出。C:\ Program Files(x86)\ MSBuild \ 12.0 \ bin \ Microsoft.Common.CurrentVersion.targets 当我双击此消息时,它将打开C:\ Program Files(x86)\ MSBuild \ 12.0 \ bin \ Microsoft.Common.CurrentVersion.targets文件,但其中的任何内容我都不明白。 我正在将Visual Studio Express 2013用于Web。 如何找出问题所在以及哪个DLL,然后如何使警告消失?

9
是否等效于日期的Math.Min和Math.Max?
在两个日期之间获取最小值(或最大值)的最快,最简单的方法是什么?日期是否等于Math.Min(&Math.Max)? 我想做类似的事情: if (Math.Min(Date1, Date2) &lt; MINIMUM_ALLOWED_DATE) { //not allowed to do this } 显然,上述Math.Min无法使用,因为它们是日期。
369 .net 


18
如何从事件中删除所有事件处理程序
要在控件上创建新的事件处理程序,您可以执行此操作 c.Click += new EventHandler(mainFormButton_Click); 或这个 c.Click += mainFormButton_Click; 并删除事件处理程序,您可以执行此操作 c.Click -= mainFormButton_Click; 但是,如何从事件中删除所有事件处理程序?
366 c#  .net  winforms  events 

9
有什么比.NET Reflector好?[关闭]
按照目前的情况,这个问题不适合我们的问答形式。我们希望答案得到事实,参考或专业知识的支持,但是这个问题可能会引起辩论,争论,民意调查或扩展讨论。如果您认为此问题可以解决并且可以重新提出,请访问帮助中心以获取指导。 7年前关闭。 以前,我曾经爱过.NET Reflector,但是自从Red Gate Software接管它以来,它就急剧下滑。现在,它迫使我进行更新(这绝对是荒谬的),有一半的时间使更新无法顺利进行,并且每次更新都越来越妨碍我的工作效率。我已经厌倦了,我已经准备好更好的东西了。有更好的反汇编程序吗? 更新: 答案中提到的各种替代方案列表- ILSpy dotPeek 只是反编译 磨碎者 单声道塞西尔 卡里罗 Dotnet IL编辑器(DILE) 通用编译器基础架构
365 .net  reflector  redgate 

4
为什么在实现类上不强制在接口上定义的C#4可选参数?
我注意到,使用C#4中的可选参数,如果您在接口上指定了可选参数,则不必在任何实现类上将该参数设为可选: public interface MyInterface { void TestMethod(bool flag = false); } public class MyClass : MyInterface { public void TestMethod(bool flag) { Console.WriteLine(flag); } } 因此: var obj = new MyClass(); obj.TestMethod(); // compiler error var obj2 = new MyClass() as MyInterface; obj2.TestMethod(); // prints false 有谁知道为什么可选参数设计成这种方式工作? 一方面,我认为覆盖接口上指定的任何默认值的功能很有用,尽管说实话,我不确定您是否应该甚至可以在接口上指定默认值,因为这应该由实现决定。 另一方面,这种断开连接意味着您不能始终交替使用具体的类和接口。当然,如果在实现上指定了默认值,这不会有问题,但是如果您将具体类公开为接口(例如,使用某些IOC框架注入具体类),那么实际上就没有问题了。具有默认值的点作为调用方,无论如何都必须始终提供它。

7
GUID的字符串长度是多少?
我想创建一个SQL VARCHAR列应包含N'guid'同时guid是一个生成的GUID由.NET(Guid.NewGuid) -类的System.Guid。 varchar我应该从GUID期待的长度是多少?它是静态长度吗? 我应该使用nvarchar(GUID会使用Unicode字符)吗? varchar(Guid.Length) PS。我不想使用SQL行GUID数据类型。我只是问什么Guid.MaxLength。

30
在C#中将枚举与字符串关联
我知道以下是不可能的,因为Enumeration的类型必须是int enum GroupTypes { TheGroup = "OEM", TheOtherGroup = "CMB" } 从我的数据库中,我得到了一个不完整代码(the OEM和CMBs)的字段。我想将此字段变成一个enum或其他可以理解的字段。因为如果目标是可读性,则解决方案应该简洁。 我还有什么其他选择?
361 c#  .net 




7
处理可能的IEnumerable多个枚举的警告
因此在我的代码中需要使用IEnumerable&lt;&gt;几次,从而得到“可能的多重枚举IEnumerable” 的Resharper错误。 样例代码: public List&lt;object&gt; Foo(IEnumerable&lt;object&gt; objects) { if (objects == null || !objects.Any()) throw new ArgumentException(); var firstObject = objects.First(); var list = DoSomeThing(firstObject); var secondList = DoSomeThingElse(objects); list.AddRange(secondList); return list; } 我可以将objects参数更改为List,然后避免可能的多重枚举,但随后我没有得到可以处理的最高对象。 另一件事,我可以做的就是将转换IEnumerable到List在方法的开头: public List&lt;object&gt; Foo(IEnumerable&lt;object&gt; objects) { var objectList = objects.ToList(); // ... } 但是,这很尴尬。 在这种情况下您会做什么?

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.