gpt4 book ai didi

c# - 我可以在整数上使用合并运算符来链接 CompareTo 吗?

转载 作者:太空狗 更新时间:2023-10-29 21:35:55 25 4
gpt4 key购买 nike

我想做这样的事情:

public override int CompareTo (Foo rhs)
{
return Bar.CompareTo(rhs.Bar) ??
Baz.CompareTo(rhs.Baz) ??
Fuz.CompareTo(rhs.Fuz) ?? 0;
}

这并不像写的那样有效;是否有一些最小的解决方法来使其工作?基本上我希望 0 链接到非零(或链结束)。

最佳答案

该语言不支持。但是你可以像这样写一个小 helper :

public override int CompareTo (Foo rhs)
{
return FirstNonZeroValue(
() => Bar.CompareTo(rhs.Bar),
() => Baz.CompareTo(rhs.Baz),
() => Fuz.CompareTo(rhs.Fuz));
}

private int FirstNonZeroValue(params Func<int>[] comparisons)
{
return comparisons.Select(x => x()).FirstOrDefault(x => x != 0);
}

关于c# - 我可以在整数上使用合并运算符来链接 CompareTo 吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7881308/

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