如果property1为空,则使用property2

时间:2014-02-04 18:37:26

标签: c# winforms report expression

public string FirstPersonName
    {Get; set; }
public string LocationName
    {Get; set; }

public PropertyEvidenceBL()
{
    if (FirstPersonName==string.empty)
{
 //grab the LocationName in its place. How do I write this.
  return LocationName;  //does not work
}

查询GetPropertyReport包含所有人员位置信息。 业务类是PropertyEvidenceBL,它具有所有对象/属性

2 个答案:

答案 0 :(得分:1)

看起来您在发布的代码中的构造函数中有一个return语句。为什么呢?

尝试这样的事情。

另请注意,您最有可能需要string.IsNullOrEmptystring.IsNullOrWhiteSpace作为测试。在您的情况下,FirstPersonName可能 null ,而不是 。两件截然不同的事情。

public string FirstPersonName { get; set; }
public string LocationName { get; set; }

public string PersonOrLocationName {
    get {
        return !string.IsNullOrEmpty(FirstPersonName) ? FirstPersonName : LocationName;
    }
}

// From your post this looks like the class constructor...
public PropertyEvidenceBL
{
    // Do something with the name...
    string name = PersonOrLocationName;
}

如果您对? :语法感到好奇,那就是它的简写:

if(!string.IsNullOrEmpty(FirstPersonName) {
    return FirstPersonName
}
else {
    return LocationName;
}

答案 1 :(得分:0)

如果FirstPersonName为空,您可以做的是分离逻辑检查。显然有更多代码处理CheckFirstName方法的返回(不确定你用它做了什么)。

public PropertyEvidenceBL()
{
    CheckFirstName();
}

private string CheckFirstName()
{   
   if (FirstPersonName == string.empty)
   {
       return LocationName;
   }
   else
   {
      return FirstPersonName
   }        
}