是否可以创建一个由其他属性组合的类属性?

时间:2012-09-23 16:38:00

标签: c#

我想将一些字符串属性组合成一个字符串,以便更轻松地进行排序和显示。我想知道是否有办法做到这一点,而不必遍历集合或类的列表。类似下面Person类中的FullName。

public class Person
{
    public string Last {get;set;}
    public string First {get;set;}

    public string FullName = Last + ", " + First {get;}
}

8 个答案:

答案 0 :(得分:7)

像这样更新你的课程:

public class Person
{
    public string Last { get; set; }
    public string First { get; set; }

    public string FullName 
    { 
        get 
        { 
            return string.Format("{0}, {1}", First, Last); 
        } 
    }
}

除了你的问题之外,我还建议实现ToString()方法的覆盖(你的问题提到让显示更容易),因为大多数UI技术都会将其用作显示对象的默认方式。

public override string ToString()
{
    return FullName;
}

答案 1 :(得分:3)

public string FullName {
  get{
    return Last + ", " + First;
  }
}

答案 2 :(得分:3)

不确定

public string FullName 
{
    get
    {
        return FirstName + ", " + LastName;
    }
}

答案 3 :(得分:2)

为什么不呢?

public string FullName
{
    get { return Last + ", " + First; }
}

答案 4 :(得分:1)

试试这个:

  public string FullName 
     {
          get
            {
                return Last + " " + First;    
            }        
      }

答案 5 :(得分:1)

public string Fullname
{
    get
    {
        return string.Format("{0}, {1}", Last, First);
    }
    set
    {
        string[] temp = value.Split(',');
        Last = temp[0].Trim();
        First = temp[1].Trim();
    }
}

答案 6 :(得分:1)

是。您可以使用类中的属性执行相同操作。甚至微软也建议在一个类中创建一个void方法,它只是用类的字段作为属性而不是方法来进行简单的操作。

答案 7 :(得分:0)

使用字符串插值,因为它很简单;)

    public class ApplicationUser
    {
        public string FirstName { get; set; }
        public string LastName { get; set; }


        public string FullName
        {
            get
            {
                return $"{FirstName} {LastName}";
            }
        }
    }