为什么string str = new string("abc")不通过编译器?

q09*_*987 2 c# string

鉴于public String(char*)为什么我们不能使用以下声明?

string str = new string("aaa");
Run Code Online (Sandbox Code Playgroud)

错误1

'string.String(char*)'的最佳重载方法匹配包含一些无效参数C:\ temp\ConsoleApplication2\ConsoleApplication2\Program.cs 19 26 ConsoleApplication2

错误2

参数1:无法从'string'转换为'char*'C:\ temp\ConsoleApplication2\ConsoleApplication2\Program.cs 19 37 ConsoleApplication2

Ric*_*der 10

只需使用:

 string str = "aaa";
Run Code Online (Sandbox Code Playgroud)

你不需要new一个字符串.

"aaa"是一个字符串.它不是char *.
char *unsafe代码一起使用.


Qui*_*son 6

因为这不是用于安全代码......

在C#中,此构造函数仅在不安全代码的上下文中定义.

来自:http://msdn.microsoft.com/en-us/library/6y4za026.aspx

如果你需要构造一个字符串,你可以使用文字的decleration ..

string str = "aaa";
Run Code Online (Sandbox Code Playgroud)