我正在使用 string.Join()
来使用分隔符连接值 - 这是我使用 User
类的简化示例:
public class User
{
public string Name { get; set; }
public int Age { get; set; }
}
这是我的结果:
User uItem = new User() { Age = 10, Name = null };
string item1 = string.Join(";", string.Empty, 1); // returns ";1"
string item2 = string.Join(";", null, 1); // returns ""
string item3 = string.Join(";", uItem.Name, uItem.Age, 1); // returns ""
string item4 = string.Join(";", 1, null); //returns "1;"
string item5 = string.Join(";", null, uItem.Age, 1); // throws null exception
起初我很惊讶 item2
的行为与 item1
不同,它返回了一个 ""
而不是 ";1"
。
是否有一条规则,类似于 null 是允许的,但不允许在第一个项目中使用?
我的问题:为什么item3
返回""
,而item5
会抛出异常?输入值相等。
";", uItem.Name, uItem.Age, 1
。第一个参数是分隔符,第二个参数是空的string[]
,第三个是起始索引,最后一个是计数。如果他再添加另一个参数,就会采用params object[]
重载。 - Tim Schmelterstring.Join(";", null, uItem.Age, 1);
; ";" 是string
,null
是string[]
,uItem.Age
是int
,1
是int
。 - xanatos