C# 用于初始化变量的简短版本

C# 用于初始化变量的简短版本,c#,C#,我想重构以下两行代码: var myDbObject = service.GetObj(id); name = myDbObject != null ? myDbObject.Name : "No name"; 如何避免使用辅助变量“myDbObject” 我可以只用一行代码来完成吗 有没有LINQ或其他什么方法来完成这个 我没有寻找的解决方案: 使用返回名称而不是完整对象的服务 多次呼叫该服务 空三元(??)?@colehonson空三元将分配myDbObject。Dry需要将其分配给my

我想重构以下两行代码:

var myDbObject = service.GetObj(id);
name = myDbObject != null ? myDbObject.Name : "No name";
如何避免使用辅助变量“myDbObject”

我可以只用一行代码来完成吗

有没有LINQ或其他什么方法来完成这个

我没有寻找的解决方案:

  • 使用返回名称而不是完整对象的服务
  • 多次呼叫该服务

空三元(
??
)?@colehonson空三元将分配myDbObject。Dry需要将其分配给myDbObject。Name@ColeJohnson你是要我使用service.GetObj(id.Name)吗??“No name”>>这不会在每次对象为null时都起作用。当我访问null的属性名时,会出现异常。@Dryadwoods您不使用该变量试图实现什么。您的选项是使用try-catch,但请不要使用。可能重复的“否”,这不是解决方案,因为您正在呼叫服务2次,我不想这样做。@Dryadwoods-这是您刚刚引入的一个新约束,在问题中没有提到,所以我将+1这个答案。通常最好弄清楚所有要应用的约束条件。@Dryadwoods,可能是不可能的。等待对方的回应。
var name= service.GetObj(id)==null? "No name": service.GetObj(id).Name;