gpt4 book ai didi

c# - 比 If-Else 更好的编码实践

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

假设我有这段代码。

int count = 0;
int id = GetFirstId();
count = getCountById(id);

if(count == 0){
id = GetSecondId();
count = getCountById(id);
if(count == 0){
id = GetThirdId();
count = getCountById(id);
}
}

有没有更好的方法来做到这一点。里面有 LOOP 和 CASE Statement 之类的东西更好吗?

最佳答案

如果您有不同的方法,您可以列出这些方法,然后使用 LINQ 获取第一个非零 count。如果所有您的GetXXXId 具有相同的签名,它将起作用。

var idGetters = new Func<int>[] 
{
GetFirstId,
GetSecondId,
GetThirdId
// and so on
};

var count = idGetters
.Select(x => x())
.Select(GetCountById)
.SkipWhile(x => x == 0)
.FirstOrDefault();

关于c# - 比 If-Else 更好的编码实践,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/40625535/

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