好的,所以我有一个像这样的字符串数组:
string[] myStringArray = new string[2];
myStringArray[0] = "Foo";
myStringArray[1] = "Bar";
要声明一个新字符串并使其等于我的数组中的第一个字符串,我是否这样做:
string foo = myStringArray[0];
或者这个:
string foo = myStringArray[0].ToString();
我知道的基本内容,但如果你不问......
由于
答案 0 :(得分:2)
你这样做:
string foo = myStringArray[0];
在字符串实例上调用.ToString
只会返回相同的实例,因此您不需要它。以下是为字符串类定义此方法的方法:
public override string ToString()
{
return this;
}
答案 1 :(得分:2)
没有。 myStringArray[0]
已经是一个字符串,因此您不必自己指定ToString()
。如果myStringArray[0]
不是字符串,则必须这样做。
ToString()
是一个非常低级别的调用,是为最基本的内容object
定义的。所以它存在于所有C#对象上,你可以在任何东西上调用它,即使是在不需要它的东西上
例如。您可以编写"string".ToString().ToString()
编译器并不介意,它只会出现"string"
。
答案 2 :(得分:2)
您不必调用ToString()
顺便说一下,如果你反编译String类,你会发现这是ToString()实现:
public override string ToString()
{
return this;
}
答案 3 :(得分:2)
正如其他人所说,ToString()
上的string
会返回字符串本身,因此调用ToString()
完全没用。
实际上它甚至危险,因为如果你的字符串是NullReferenceException
,它可能会抛出null
。
答案 4 :(得分:1)
无需使用ToString()
,String[]
的项目已经是字符串。
答案 5 :(得分:1)
string foo = myStringArray[0];
以上将达到目的,如果您有LINQ,那么您可以使用
string foo = myStringArray.First();
如果您不确定字符串数组是否始终具有值,则可以使用
string foo = myStringArray.FirstOrDefault();
希望这就是你要找的东西。