【发布时间】:2010-10-16 23:16:51
【问题描述】:
关于最佳实践,使用:
Double d;
和
double d;
我知道最佳实践充满矛盾,所以我知道这里的答案可能会有所不同。我只是想知道两者在语用上的区别。
【问题讨论】:
关于最佳实践,使用:
Double d;
和
double d;
我知道最佳实践充满矛盾,所以我知道这里的答案可能会有所不同。我只是想知道两者在语用上的区别。
【问题讨论】:
没有区别。 double 只是 C# 中 System.Double 的别名。
请注意,VB.NET 没有相同的别名(System.Int32 为 int,System.Double 为 double 等),因此别名仅适用于 C#,而不适用于整个 .NET。
【讨论】:
不,没有区别:double 是 C# 关键字,是 System.Double 类型的别名。
【讨论】:
double 和 Double 之间有一个非常重要的区别:double 将始终引用 System.Double,Double 将引用恰好在范围内的 Double。另外,我相信double 不是 ECMA C# 或 ISO C# 的一部分,只有 Microsoft Visual C#,所以不能保证跨平台工作。
double 是 ECMA/ISO C# 的重要组成部分,is 保证在任何符合规范的实现上都能正常工作。至于Double 指的是范围内的Double:这是不言而喻的;请注意,我在回答中特别注意了 System.Double。 (并且任何在更本地的命名空间中声明自己的 Double 类型——或 Int32 或 DateTime 或 Object 等的人都应该准备好处理这些陷阱。)
实际上...反汇编后我发现 System.Double 是对 double 的包装...所以 double 不是 System.Double 的“快捷方式”。
【讨论】:
这里有点不同。
-您可以将类、参数、var 命名为“Double”,但如果您想将其命名为“double”,则必须输入 @double。
-你可以对 Double 使用限定符,但不能对 double 使用。 例如
System.Double d; //Correct
System.double d; //incorrect. Compiler error: Identifier expected for "System." .
Double Double,@double;//Correct
double double;//incorrect ,Identifier expected for both doubles
类和参数是一样的……String-string,Boolean-bool也是一样的.....
【讨论】:
在 C# 中,Double 和 double 是相同的,但是 Double 保证在所有 .NET 平台上都相同,据我所知,double 在所有平台上都是相同的,但不能保证这样(尽管事实上)。
【讨论】:
double 不是Double 的别名,它是System.Double 的别名。这意味着double 和Double 之间有一个非常重要的区别:double 将始终 指代System.Double,Double 将指代Double 恰好在范围。