首页
学习
活动
专区
工具
TVP
发布
社区首页 >问答首页 >在C#中大String 和string之间有什么区别?

在C#中大String 和string之间有什么区别?
EN

Stack Overflow用户
提问于 2018-02-07 01:13:34
回答 10查看 0关注 0票数 0

例如:

代码语言:javascript
复制
string s = "Hello world!";
String S = "Hello world!";

两种字符串应该如何使用?并且他们之间的差异是什么?

EN

Stack Overflow用户

发布于 2018-02-07 02:54:22

string的别名System.String,它们编译成相同的代码,因此在执行时没有任何区别。以下为C#中完整的清单别名:

代码语言:javascript
复制
object:  System.Object
string:  System.String
bool:    System.Boolean
byte:    System.Byte
sbyte:   System.SByte
short:   System.Int16
ushort:  System.UInt16
int:     System.Int32
uint:    System.UInt32
long:    System.Int64
ulong:   System.UInt64
float:   System.Single
double:  System.Double
decimal: System.Decimal
char:    System.Char

除了stringobject,别名都与值类型有关。decimal是值类型,但不是CLR中的基本类型。唯一没有别名的原始类型是System.IntPtr...

在规范中,值类型别名称为“简单类型”。文字可以用于每种简单类型的常量值;没有其他值类型具有可用的文字形式。(与VB相比,它允许DateTime有文字形式,并且它也有一个别名)

有一种情况需要使用别名:当显式指定枚举的底层类型时

代码语言:javascript
复制
public enum Foo : UInt32 {} // Invalid
public enum Bar : uint   {} // Valid

这只是规范定义枚举声明的方式的问题 - 冒号之后的部分必须是整型生产,它是sbytebyteshortushortintuintlongulongchar的一个标记。与变量声明所使用的类型生产相反。 这并没有表明有任何其他的差异。

最后,当涉及到使用哪一个时:我个人在任何地方都使用别名作为实现,但是对于任何API我使用的都是CLR类型。另一方面,真正重要的是,如果引用API中的类型,则应该以语言中立的方式进行引用。一个名为ReadInt32是明确的,而方法称为ReadInt需要解释。调用者可以使用一种语言来定义int别名Int16。例如。那个.NET框架设计人员遵循了这种模式,在BitConverterBinaryReaderConvert中都很好的例子出现。

票数 0
EN
查看全部 10 条回答
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/-100003174

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档