6

在 C# 中,我们有 .Net 类和短名称,例如 Double 和 double。某个时候有人建议我总是使用简称,想知道为什么。我知道他们都是一样的,但为什么有时比其他人更喜欢一个呢?只是可读性还是有更多的东西?

例如,如果我正在创建一个具有字符串和布尔属性的类,则应始终使用以下哪一项以及何时应使用另一项:

Class MyClass {
    ...
    private String x;
    private Boolean y;
    ...
}

或者

Class MyClass {
    ...
    private string x;
    private bool y;
    ...
} 
4

7 回答 7

5

简而言之:随心所欲。

我宁愿每次可以使用别名。

Int32当您的代码中有多个不同的 Int 时,请使用而不是 int。喜欢混合Int32Int64Int16

于 2012-12-16T15:02:40.487 回答
3

好吧,它们是一样的。编译到 CLR 后,它们都指向相同的数据类型。

于 2012-12-16T15:02:19.653 回答
3

您可以在代码中使用 Int32 或 int,但您应该以一种方便的方式使用它,您不应该同时使用它们,这会使代码不可读,但是 C# 约定说您应该始终使用同义词。

有时,您可能会在 Java 中的“包装类”和.Net 中的“可空类型”或“ C# 的类型同义词”之间混合使用

C#中“int”与“Int32”相同,“bool”与“Boolean”相同,“string”与“String”相同,但“int”在C#语言中是“System.Int32”的同义词.Net 类。

你可以使用“int?” 或 Nullable<int> 使变量接受“null”值,但在 Java 中,您应该使用包装类 Integer 而不是 integer 来保存“null”值。

于 2012-12-16T15:03:16.367 回答
3

那完全取决于你。对于某些可读性更重要。因此,请使用对您来说更具可读性和方便性的一种。

别名只是因为方便而使用,但它们与编译器的实际别名相同。

于 2012-12-16T15:05:36.330 回答
3

string 是 System.String 的别名,bool 是 System.Boolean 的别名,依此类推。C# 类型关键字及其别名是可互换的。

我个人更喜欢使用别名,除非我需要强调显式类型以防将来可能需要此信息。例如使用 System.Int32 代替 if int 来明确表明存在限制,即使它们完全相同。

于 2012-12-16T15:09:09.510 回答
3

当您需要访问静态方法和声明给定类型的变量/字段时,您应该使用类名和短名称。

int i = 0;
Int32.TryParse(s, out i);

请参阅任何 Microsoft 代码示例http://msdn.microsoft.com/en-us/library/system.int32.aspx

编译后的代码与其他方式没有区别。它更干净,更具可读性。

于 2012-12-16T15:10:14.770 回答
1

int, bool,string等只是System命名空间中预定义类型的别名。

此处的完整列表:内置类型(C# 参考)

于 2012-12-16T15:03:56.207 回答