gpt4 book ai didi

c# - 内联 If 语句中的默认条件

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

我正在我的 C# 代码中获取一个数据库行。行包含 3 个不同的标志(3 列具有 true 或 false 值)。这些列中只有一列为真,这将决定该对象的类型。我如何在一行代码中确定该对象的类型。如果所有三个标志都为 false,那么我需要一个默认类型。

var myObject = this.unitOfWork.myRepository.GetMeObject();

var objectType = myObject .IsA == true
? "A"
: myObject .IsB == true
? "B"
: myObject .IsC == true
? "C"
: "D";

如果条件都不成立,那么 ObjectType 应该是 D

任何建议将不胜感激。

谢谢

最佳答案

就个人而言,我很想为您的数据库对象创建一个扩展方法。像这样:

public static string GetObjectTypeOrDefault(this MyObject myObject)
{
if(myObject.IsA) return "A";
if(myObject.IsB) return "B";
if(myObject.IsC) return "C";
return "D";
}

然后你会像这样使用它:

MyObject myObject = this.unitOfWork.myRepository.GetMeObject();
string objectType = myObject.GetObjectTypeOrDefault();

您甚至可以使用此方法检查 null 对象


如果你仍然只想要一行,那么你最初的尝试会很好,但可以稍微清理一下:

var objectType = myObject.IsA ? "A" : myObject.IsB ? "B" : myObject.IsC ? "C" : "D";

关于c# - 内联 If 语句中的默认条件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17612103/

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