C#:为什么不能用字符串文字作为参数构造字符串?
C#: why string cannot be constructed with a string literal as parameter?
static void Main(string[] args)
{
string s = new string("abc");
string s2 = "abc";
}
这个程序在第一行有编译错误,字符串构造函数不能接受字符串文字,而第二行编译正常。
所以第1行和第2行有什么区别,我想他们都是构造函数,为什么第1行有编译错误?
C# 字符串构造函数只接受这些参数,其中字符串不是其中之一:
unsafe public String(char*);
public String(char[]);
unsafe public String(sbyte*);
public String(char, int);
unsafe public String(char*, int, int);
public String(char[], int, int);
unsafe public String(sbyte*, int, int);
unsafe public String(sbyte*, int, int, Encoding);
static void Main(string[] args)
{
string s = new string("abc");
string s2 = "abc";
}
这个程序在第一行有编译错误,字符串构造函数不能接受字符串文字,而第二行编译正常。
所以第1行和第2行有什么区别,我想他们都是构造函数,为什么第1行有编译错误?
C# 字符串构造函数只接受这些参数,其中字符串不是其中之一:
unsafe public String(char*);
public String(char[]);
unsafe public String(sbyte*);
public String(char, int);
unsafe public String(char*, int, int);
public String(char[], int, int);
unsafe public String(sbyte*, int, int);
unsafe public String(sbyte*, int, int, Encoding);