在未初始化的char对象属性上调用ToString()时返回什么?

时间:2008-10-08 15:01:14

标签: c#

我有一个名为Gender的属性的c#对象,它被声明为char。

private char _Gender;
public char Gender
{
    get{ return _Gender; }
    set{ _Gender = value; }

}

当我调用MyObject.Gender.ToString()时返回/创建了什么字符串?

我问,因为我正在调用webservice(它接受一个字符串而不是一个char)所以当我传递它时,我在属性上做一个ToString。如果未设置char,我希望它发送一个空字符串。

然而,情况似乎并非如此,所以问题是字符串是什么?

3 个答案:

答案 0 :(得分:2)

char的默认值是unicode 0,所以我希望返回“\ u0000”。

答案 1 :(得分:2)

字段始终初始化为其默认值; 0 / false / null - 这是0字符,\ 0。

如果你想要一个空字符串,直接使用字符串 - 即“”。

您可以使用条件运算符:

string s = c == 0 ? "" : c.ToString();

或者,可空类型可能会有所帮助 - 即

char? c; // a field
...
string s = c.ToString(); // is ""
c = 'a';
s = c.ToString(); // is "a"

答案 2 :(得分:0)

char的长度为1,因此它永远不应返回空字符串。

如果你想区分0和未初始化,你需要使用可以为空的形式char?。