C#中string与String的区别

简介:     在C#中,string 是 System.String 的别名,所以基本上在使用时是没有差别的。 1、习惯上,我们把字符串当作对象时(有值的对象实体),我们用string。

    在C#中,string 是 System.String 的别名,所以基本上在使用时是没有差别的。

1、习惯上,我们把字符串当作对象时(有值的对象实体),我们用string。而我们把它当类时(需要字符串类中定义的方法),我们用String,比如:
    string greet = String.Format("Hello {0}!", place);

2、string是C#保留字,不可用作变量名,String就不是了。

3、String是公共语言运行时(CLR)中的实现类型,像VB,C++中的字符串类型最终都会编译成此类型。

    C#中字符串类型是String,string是C#中字符串类型String的反射,是String的一个别名,就像int对应于Int32一样,二者在C#中可通用。

    如果用string,编译器会把它编译成String,在这里会多增加几行转换的代码,如下面所示,所以如果直接用String就可以让编译器少做一点点工作 。

  1. using string = System.String;

  2. using sbyte = System.SByte;

  3. using byte = System.Byte;

  4. using short = System.Int16;

  5. using ushort = System.UInt16;

  6. using int = System.Int32;

  7. using uint = System.UInt32;

4、string 可以在不引用 任何命令空间的情况下使用。
    String 必须先引用 System命名空间。

 

如果使用c#,建议使用string,比较符合规范。   

 

参考文献

http://wenku.baidu.com/view/bf9e2d6f7e21af45b307a8e5.html

http://zhidao.baidu.com/link?url=BMEavdS76j0M6Jq9JxvkWfz5OT4dXt2zymvPvCFf7UYXIwl0r_lNUd0sof_gDZj-8M_LRmt1N-8J6v2u5gK8Vq

相关文章
|
1月前
|
C#
C#学习相关系列之yield和return的区别
C#学习相关系列之yield和return的区别
|
1月前
|
C#
C#系列之ref和out的区别
C#系列之ref和out的区别
|
1月前
|
C#
51.c#:string类的静态方法
51.c#:string类的静态方法
20 1
|
1月前
|
C#
C#中IsNullOrEmpty和IsNullOrWhiteSpace的区别?
C#中IsNullOrEmpty和IsNullOrWhiteSpace的区别?
|
3月前
|
存储 安全 Java
【JAVA基础】String、StringBuilder和StringBuffer的区别——巨详细
String是不可变的,StringBuilder和StringBuffer是可变的。而StringBuffer是线程安全的,而StringBuilder是非线程安全的。
|
4月前
|
安全 Java 调度
Java基础面试,String,StringBuffer,StringBuilder区别以及使用场景
* String是final修饰的,不可变,每次操作都会产生新的对象。 * StringBuffer和StringBuilder都是在原对象上进行操作 * StringBuffer是线程安全的,StringBuilder是线程不安全的。 * StringBuffer方法是被synchronized修饰的
|
3月前
|
Python
python中split_string和substring区别
python中split_string和substring区别
54 1
|
1月前
|
C#
深入C#中的String类
深入C#中的String类
11 0
|
1月前
|
自然语言处理 C# 数据安全/隐私保护
50.c#:string类初始化
50.c#:string类初始化
12 1
|
1月前
|
存储 算法 安全
【数据结构与算法初学者指南】【冲击蓝桥篇】String与StringBuilder的区别和用法
【数据结构与算法初学者指南】【冲击蓝桥篇】String与StringBuilder的区别和用法