23得票1回答
为什么 math.Ceiling (double a) 不直接返回 int?

可能重复: 为什么Math.Round/Floor/Ceiling不返回long或int? 这个方法在msdn上被定义为:返回大于或等于指定的双精度浮点数的最小整数。 但事实上它是public static double Ceiling ( double a ) 为...

23得票2回答
十进制转换为双精度浮点数失效的数学解释以及为什么 Decimal.GetHashCode 可以区分相等实例

我不确定这种非标准的提问方式是好还是坏,但是我们来试一下: 什么是最好(数学上或其他技术上)解释以下代码的方法:static void Main() { decimal[] arr = { 42m, 42.0m, 42.00m, 42.000m, ...

23得票3回答
.NET 4.0中的CallerMemberName无法工作

我正在尝试使用.NET 4.0中的CallerMemberName属性,通过BCL可移植性包。但它总是返回一个空字符串,而不是成员名称。我做错了什么?public partial class Form1 : Form { public Form1() { Ini...

21得票1回答
使用通用语法的反射在重写方法的返回参数上失败了

为了避免在搜索已知类型的属性时使用过时的非泛型语法,通常使用System.Reflection.CustomAttributeExtensions类中的扩展方法(自.NET 4.5以来)。 但是,如果您在覆盖方法的返回参数(或覆盖属性/索引器的访问器)上搜索属性,则似乎会出现问题。 我在....

21得票1回答
什么情况下UnderlyingSystemType与当前的Type实例不同?

System.Type 包含一个 UnderlyingSystemType 属性。MSDN说明它: 指示由公共语言运行时提供的表示此类型的类型。 在大多数情况下,此属性只返回当前的 Type 实例本身。 我的问题是,在什么情况下,此属性会 不 返回当前的 Type 实例本身。在这...

20得票3回答
使用Microsoft.Bcl.Async与代码分析会导致错误。

我正在尝试使用Microsoft.Bcl.Async和代码分析,但是在运行代码分析时我收到一个或多个错误。 我正在使用带有Update 2的Visual Studio 2012。 这对我来说很容易复现: 创建一个新的默认控制台应用程序,其目标为.Net 4。 右键单击引用,然后选择管理NuG...

19得票2回答
.NET中是否有任何类型的“ReferenceComparer”?

在BCL中,有几个地方可以使用IEqualityComparer,例如Enumerable.Contains或Dictionary Constructor。如果我不满意default的比较器,我可以提供自己的。 有时候我想知道集合中是否包含我所引用的那个对象,而不是其他任何意义上“相等”的对...

19得票1回答
System.ValueTuple 4.4.0 -> 4.5.0有哪些变化?

我考虑将我的System.ValueTuple引用更新从4.4.0到当前的4.5.0版本。 为了避免退化,我想找出这两个版本之间有什么变化。在nuget网页中说: 发布说明 https://go.microsoft.com/fwlink/?LinkID=799421 它...

18得票2回答
为什么存在String.Format的重载?

我使用反射器查看String.Format方法的实现,并一直认为只有一个、两个和三个参数的String.Format重载是该方法的优化版本,它们比接受对象数组参数的版本更高效。然而,我发现内部实际上它们会创建一个对象数组,然后调用一个接受对象数组参数的方法。 1个参数:public stat...

16得票15回答
“Go To语句是否有害?”

如果上述陈述正确,为什么我在.Net BCL上使用反射器时看到它被大量使用? 编辑:让我重新表述:我在反射器中看到的所有GO-TO是由人类编写还是编译器编写的?