似乎编译器不会让这种语法飞起来。
void main()
{
foo(false?0:"");
}
void foo(int i) {return;}
void foo(string s) {return;}
我可以看到的解决此问题的唯一其他方法如下:
void bar(object o)
{
if (o is string){//do this}
else{//im an int, do this}
}
有人有更好的想法吗?
最佳答案
你的例子没有多大意义(第二个例子与第一个无关)。
我认为第一个例子会很好,因为:
void main()
{
foo("");
}
由于 0 无论如何都不会被传递(false 总是 false),并且您不能在没有赋值的情况下使用内联条件运算符(您的示例缺少)。
至于第二种方式,这可能是我希望看到的方式:
void bar(object o)
{
if(o is string) foo(o as string);
else foo((int)o);
}
关于c# - 内联条件 c# - 下一个最佳解决方案?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/3557447/