什么时候使用int还是Int32还是string与String?

在C#中,内置类型的关键字只是System命名空间中对应类型的别名。

通常,使用关键字(如int )还是使用标识符(如Int32 )来引用内置类型都没有区别。 但是有一个例外,所以我的问题分两部分:

  • C#何时需要您使用或不使用关键字?
  • 什么时候使用关键字而不是标识符来改变程序的含义?

  • C#不要求您使用其中一个或另一个,因为它们是等效的。 这是个人喜好和编码习惯。 因此,请使用看起来对您和您的团队更具可读性的文章。 只有一个建议:保持一致:不要在你的代码库中使用别名,在下半部分使用完整类型名称。


    stringSystem.String类型的别名, intSystem.Int32的别名。 因此,请根据您的喜好使用。


    使用别名指令不能使用关键字作为类型名称(但可以在类型参数列表中使用关键字):

    using Handle = int; // error
    using Handle = Int32; // OK
    using NullableHandle = Nullable<int>; // OK
    

    枚举的基础类型必须使用关键字来指定:

    enum E : int { } // OK
    enum E : Int32 { } // error
    

    根据x是关键字还是标识符,表达式(x)+y(x)-y(x)*y的解释会有所不同:

    (int)+y // cast +y (unary plus) to int
    (Int32)+y // add y to Int32; error if Int32 is not a variable
    (Int32)(+y) // cast +y to Int32
    
    (int)-y // cast -y (unary minus) to int
    (Int32)-y // subtract y from Int32; error if Int32 is not a variable
    (Int32)(-y) // cast -y to Int32
    
    (int)*y // cast *y (pointer indirection) to int
    (Int32)*y // multiply Int32 by y; error if Int32 is not a variable
    (Int32)(*y) // cast *y to Int32
    
    链接地址: http://www.djcxy.com/p/21199.html

    上一篇: When does it matter whether you use int versus Int32, or string versus String?

    下一篇: What is the difference between bool and Boolean types in C#