我有一个名为Gender的属性的c#对象,它被声明为char。
private char _Gender;
public char Gender
{
get{ return _Gender; }
set{ _Gender = value; }
}
当我调用MyObject.Gender.ToString()时返回/创建了什么字符串?
我问,因为我正在调用webservice(它接受一个字符串而不是一个char)所以当我传递它时,我在属性上做一个ToString。如果未设置char,我希望它发送一个空字符串。
然而,情况似乎并非如此,所以问题是字符串是什么?
答案 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?。