C# 定义字符创-在线等

来源:百度知道 编辑:UC知道 时间:2024/07/01 06:58:22
和JAVA相比:问题1:C#有定义数据结构 string表示字符串,但我也看到C# 在书上String也表示字符串,2者到底怎么用。
问题2:C#里定义字符串为什么不能用string str=new string();或者String str=new String();
这样声明怎么不行? string s = new string("abcd");

1、string 就是 String,二者没有任何区别。string 只是 String 对象的别名而已。就好像 int 跟 Int32 是一样的, uint 跟 UInt32 是一样的。这些都是编译器为了方便广大程序员的习惯,所以两个都是一样的效果。

2、对于 string str = new string(); 楼上的已经说了,String 对象并没有无参构造函数,它有8个不同的重载构造函数,可以根据需要调用。

举例:
string s = new string( 'a', 10 ); 可以创建一个包含10个a的字符串。
其它的重载,大都是根据一个指针,或者char[]创建字符串。

//string s = new string("abcd"); 不行,没有相匹配的构造函数。
直接 string s = "abcd"; 就可以了。

string 类型表示零或更多 Unicode 字符组成的序列。string 是 .NET Framework 中 String 的别名。
string str=new string()不行,因为没有相应得构造函数。

初始化 String 类的新实例。

重载列表
名称 说明
String(Char*) 将 String 类的新实例初始化为由指向 Unicode 字符数组的指定指针指示的值。
String(array<Char>[]()[]) 将 String 类的新实例初始化为由 Unicode 字符数组指示的值。
String(SByte*) 将 String 类的新实例初始化为由指向 8 位有符号整数数组的指针指示的值。
String(Char, Int32) 将 String 类的新实例初始化为由重复指定次数的指定 Unicode 字符指示的值。
String(Char*, Int32, Int32) 将 String 类的新实例初始化为由指向 Unicode