Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/315.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 组合属性中的困难集和困难集_C#_Properties - Fatal编程技术网

C# 组合属性中的困难集和困难集

C# 组合属性中的困难集和困难集,c#,properties,C#,Properties,我将组合两个属性FirstName和LastName以及FullName属性来创建 但他们不知道该在片场写什么 public class Customer : CommonEntity { public String FirstName { get; set; } public String LastName { get; set; } public string

我将组合两个属性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 { **.....** }

    }


}

谢谢你

从全名中提取名字和姓氏是非常困难的。想想‘约翰·查尔斯·李’、‘佩德罗·德拉克鲁兹’、‘彼得·范登·胡根班德’等等


如果使用序列化,请不要序列化
FullName
属性。大多数序列化程序都不使用仅获取属性。

从全名中派生名字和姓氏是极其困难的。想想‘约翰·查尔斯·李’、‘佩德罗·德拉克鲁兹’、‘彼得·范登·胡根班德’等等

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

因为(反)序列化需要该属性,所以需要该属性来拥有setter。但是,您实际上不需要在setter中执行任何操作。我们有用于将数据输出到xml的类,xml纯粹是一个只读属性。我们绕过了这个问题,让塞特空着,但他在场。序列化例程非常愉快地接受了这一点,并将其输出到xml文件中

public string FullName
{
    get { return string.Format("{0} {1}", this.FirstName, this.LastName); }
    set { //Do Nothing }
}
这并不理想,因为它看起来像一个可写属性。但是您可以使用XmlComments来表示它是只读的。对于我们的目的来说,这很好,因为我们的类纯粹是为写入Xml而设计的

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

因为您需要它来进行(反)序列化,所以您需要该属性来具有setter。但是,您实际上不需要在setter中执行任何操作。我们有用于将数据输出到xml的类,xml纯粹是一个只读属性。我们绕过了这个问题,让塞特空着,但他在场。序列化例程非常愉快地接受了这一点,并将其输出到xml文件中

public string FullName
{
    get { return string.Format("{0} {1}", this.FirstName, this.LastName); }
    set { //Do Nothing }
}
这并不理想,因为它看起来像一个可写属性。但是您可以使用XmlComments来表示它是只读的。对于我们的目的来说,这很好,因为我们的类纯粹是为写入Xml而设计的


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

FullName理想情况下应该是只读属性它需要一个setter,还是仅用于显示?我需要一个setter,因为在序列化和反序列化这些属性的方法中应该使用这些属性。您可以使用{FirstName=value.Split(“”)[0];LastName=value.Split(“”)[1];}但是这不是很健壮……为什么不直接序列化和反序列化
FirstName
LastName
属性呢?
FullName
的值可以根据这些值完全确定。在大多数情况下,不应保存所有三个属性值,因为这会产生冗余,从而产生比解决问题更多的问题。如果由于某种原因,反序列化的值不再匹配,会发生什么情况?理想情况下,FullName应该是只读属性它需要一个setter,还是只用于显示?我需要一个setter,因为在序列化和反序列化这些属性的方法中应该使用您可以使用{FirstName=value.Split(“”)[0];LastName=value.Split(“”)[1];}但这不是很可靠……为什么不直接序列化和反序列化
FirstName
LastName
属性呢?
FullName
的值可以根据这些值完全确定。在大多数情况下,不应保存所有三个属性值,因为这会产生冗余,从而产生比解决问题更多的问题。如果由于某种原因,反序列化的值不再适合在一起会发生什么?为了完整性,我想添加一个名称,如“John Charles Lee”-这将是一个在第一个空格处拆分不起作用的示例。@O.R.Mapper添加了它:)为了完整性,我想添加一个名称,如“John Charles Lee”-这将是一个在第一个空格处拆分不起作用的示例。@O.R.Mapper添加了它:)