当前位置: 首页 > 编程语言 > C#

什么时候用intvsInt32,什么时候用stringvsString?Share

时间:2023-04-11 10:34:18 C#

何时使用int与Int32,或String与String?在C#中,内置类型的关键字只是System命名空间中相应类型的别名。通常,使用关键字(如int)或标识符(如Int32)来引用内置类型没有区别。但是凡事都有例外,所以我的问题分为两部分:C#什么时候要求你使用或不使用关键字?什么时候使用关键字而不是标识符会改变程序的含义?C#不要求您使用其中之一,因为它们是等效的。这是个人偏好和编码约定。因此,请使用对您和您的团队而言更具可读性的那个。只有一个建议:保持一致:不要在代码库的一半使用别名,在后半部分使用完整的类型名称。string是System.String类型的别名,int是System.Int32的别名。因此,请根据您的喜好使用。using别名指令不能使用关键字作为类型名称(但关键字可以在类型参数列表中使用):usingHandle=int;//使用Handle=Int32时出错;//确定使用NullableHandle=Nullable;//OK必须使用key字指定枚举的底层类型:enumE:int{}//OKenumE:Int32{}//error表达式(x)+y,(x)-的解释y和(x)*y取决于x是关键字还是标识符:(int)+y//cast+y(unaryplus)toint(Int32)+y//addytoInt32;如果Int32不是变量则出错(Int32)(+y)//将+y转换为Int32(int)-y//将-y(一元负)转换为int(Int32)-y//从Int32中减去y;如果Int32不是变量则出错(Int32)(-y)//将-y转换为Int32(int)*y//将*y(指针间接)转换为int(Int32)*y//将Int32乘以y;errorifInt32isnotavariable(Int32)(*y)//cast*ytoInt32标识符int、string、bool等分别是实际类型Int32、String和Boolean的C#语言别名。使用哪个并不重要,但是在编写API时,有些人更喜欢使用实际的类类型作为别名。这是列出等效项的MSDN文章。它不需要您使用任何一个。但是,如果您想要更大或更小的int,您可能希望明确使用Int16或Int64而不是int,后者是Int32的别名。我能想到的唯一一种情况是在枚举类型的定义中需要以某种形式使用别名,而这种形式可能可以使用类名:publicenumMyEnum:Byte//willnotcompilepublicenumMyEnum:byte//正确另请注意,枚举的定义需要使用alias关键字,定义接受任何枚举类型的代码成员时,请使用类名Enum。最后,您永远不能将System.ValueType指定为基类或泛型类型参数;您改用struct关键字,它实际上是从ValueType派生的对象的别名。一个问题是奇怪地使用s或成员声明String/Int32可以映射到不同的类型(即不是mscorlib中的类型)或什至另一种成员会导致问题。正如Jon提到的,另一个问题是你不能用标识符声明枚举(你会得到错误“Typebyte,sbyte,short,ushort,int,uint,long,orulongexpected”)。没关系。int基本上是System.Int32的简写,它们几乎可以完全互换。如果需要,可以将其视为#define(但C#不允许这样的#defines)。以上就是C#学习教程:什么时候用int和Int32,什么时候用string和String?如果所有分享的内容对你有用,需要进一步了解C#学习教程,希望大家多多关注。本文收集自网络,不代表立场。如涉及侵权,请点击右侧联系管理员删除。如需转载请注明出处:

最新推荐
猜你喜欢