gpt4 book ai didi

C# 链 ??不同类型的运算符

转载 作者:太空宇宙 更新时间:2023-11-03 18:05:35 24 4
gpt4 key购买 nike

我正在为一个对象实现一个 ToString 方法。该方法看起来像:

public override string ToString()
{
return "E" + (myNum ?? SQLIndex) + STK.ExtraLabel(areaType);
}

其中 myNum 是一个可为 null 的 int,而 SQLIndex 只是一个 int。

但权力已经决定,如果 SQLIndex 尚未设置(如果未设置,则通常为 -1),我们应该在此处放置“NEW”而不是 -1。

所以我将 SQLIndex 更改为可为 null 的 int,但是这段代码不起作用,因为我猜是 ??运算符不能同时返回 int 和 string,即使 int 会被转换为字符串:

public override string ToString()
{
return "E" + (myNum ?? SQLIndex ?? "NEW") + STK.ExtraLabel(areaType);
}

我目前正在使用三元运算符来实现相同的效果,但是为了便于阅读,有什么方法可以使用快捷方式吗??接线员在吗?

最佳答案

您需要将此处的所有表达式转换为单一类型。在这种情况下,string 确实是您最终想要得到的类型,因此您必须在使用前将整数转换(而不是强制转换)为字符串??。您可以使用 ToString 将整数转换为字符串:

return "E" + (myNum?.ToString() ?? SQLIndex?.ToString() ?? "NEW") + STK.ExtraLabel(areaType);

关于C# 链 ??不同类型的运算符,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32015911/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com