如何将char数组的值设置为null?

Hen*_*ian 3 c# arrays null char

例如,当我写道:

Char[] test = new Char[3] {a,b,c};
test[2] = null;
Run Code Online (Sandbox Code Playgroud)

它说无法将null转换为'char',因为它是一个不可为空的值类型

如果我需要清空那个char数组,是否有解决方案?

D S*_*ley 9

使用可空的字符:

char?[] test = new char?[3] {a,b,c};
test[2] = null;
Run Code Online (Sandbox Code Playgroud)

缺点是每次访问数组时都必须检查一个值:

char c = test[1];  // illegal

if(test[1].HasValue)
{
    char c = test[1].Value;
}
Run Code Online (Sandbox Code Playgroud)

或者您可以使用"魔术"char值来表示null,例如\0:

char[] test = new char[3] {a,b,c};
test[2] = '\0';
Run Code Online (Sandbox Code Playgroud)

  • 只是一个快速的建议可能是使用`default(char)`作为"魔法"值.恕我直言,它为考虑"未初始化"或"未指定"的价值提供了类似的心理模型. (2认同)