C#:为什么不能用字符串文字作为参数来构造字符串

本文关键字:字符串 参数 文字 为什么 不能 | 更新日期: 2023-09-27 17:59:03

static void Main(string[] args) 
{ 
    string s = new string("abc"); 
    string s2 = "abc"; 
}

这个程序的第一行有编译错误,字符串构造函数不能接受字符串文字,而第二行编译正常。

那么,第1行和第2行有什么区别,我想它们都是构造函数,为什么第1行有编译错误?

C#:为什么不能用字符串文字作为参数来构造字符串

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); 

http://www.dotnetperls.com/string-constructor