首页
学习
活动
专区
工具
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

回答 10

Stack Overflow用户

发布于 2018-02-07 01:17:37

string是C#中System.String的别名。所以从技术上讲,没有什么区别。就像intv.V.System.Int32...

一般情况下,我建议在使用string来引用对象。

例如:

代码语言:javascript
复制
string place = "world";

如果你需要特指这个类的话,我建议使用String

例如:

代码语言:javascript
复制
string greet = String.Format("Hello {0}!", place);

Microsoft使用风格.

不过这些情况有可能发生改变,因为StyleCop现在强制使用C#特定的别名。

票数 0
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

Stack Overflow用户

发布于 2018-02-07 03:41:44

String代表System.String并且这是一个.NET框架类型。string在C#语言中化名System.String.在IL中(中间语言),这两种方法都被汇编成System.String,所以没有区别。如果你用C#编写代码,我更希望是string,因为它是一个C#类型别名,并且被C#程序员所熟知。

或者说是(intSystem.Int32)。

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

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

复制
相关文章

相似问题

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