难以设定并获得综合属性

时间:2013-11-27 08:34:57

标签: c# properties

我会将两个属性FirstName,LastName和FullName属性组合起来创建 但是他们不知道该怎么写。

 public class Customer : CommonEntity
{


    public String FirstName
    {
        get;
        set;
    }

    public String LastName
    {
        get;
        set;
    }



    public string FullName
    {
        get { return this.FirstName + " " + this.LastName; }
        set { **.....** }

    }


}

谢谢

2 个答案:

答案 0 :(得分:4)

从全名中获取名字和姓氏是非常困难的。想想John Charles Lee' Pedro de la Cruz' Pieter van den Hoogenband'等

如果使用序列化,请不要序列化FullName属性。大多数序列化程序不对get属性执行任何操作。

答案 1 :(得分:0)

由于您需要(de)序列化,因此您需要该属性具有setter。但是,您实际上并不需要在设置器中执行任何操作。我们有用于将数据输出到xml的类,这纯粹只是一个只读属性。我们解决了这个问题,因为它使得setter成为空洞但却存在。序列化例程很高兴接受这个并将其吐出到xml文件。

public string FullName
{
    get { return string.Format("{0} {1}", this.FirstName, this.LastName); }
    set { //Do Nothing }
}

它并不理想,因为它看起来像一个可写属性。但您可以使用XmlComments指示它是只读的。这对我们的目的来说很好,因为我们的类完全是为了写入Xml而设计的。

或者,您是否可以从序列化过程中排除FullName,因为它始终只是其他两个的组合?只要它们存在,您总是可以检索FullName。