我正在实现对象的ToString方法。该方法看起来像:C#链?不同类型的运算符
public override string ToString()
{
return "E" + (myNum ?? SQLIndex) + STK.ExtraLabel(areaType);
}
其中myNum是一个可为空的int和SQLIndex只是一个int。
但是权力已经决定,如果SQLIndex尚未设置(如果未设置,则为= -1),则应在其中放置“NEW”而不是-1。
因此,我将SQLIndex更改为可为空的int,但此代码不起作用,因为我在猜测?操作员不能同时返回int和字符串,即使INT将被浇铸为字符串:
public override string ToString()
{
return "E" + (myNum ?? SQLIndex ?? "NEW") + STK.ExtraLabel(areaType);
}
我目前使用三元操作符来完成相同的效果,但为便于阅读的缘故,没有任何如何使用快捷方式?运营商在这里
为了便于阅读,您想使用三元运算符?为什么不使用'if'' else'语句来提高可读性? – Aron
@Aron为了可读性,他希望两次使用['??'(null-coalescing)运算符](https://msdn.microsoft.com/en-us/library/ms173224.aspx)。 –