如何在公共属性中设置私有结构字段

本文关键字:设置 结构 字段 属性 | 更新日期: 2023-09-27 18:27:30

我有一个结构:

public struct ServiceDescription
        {
            string serviceDescriptionText;
            string serviceLogoRef;
            /// <summary>
            /// The position to print the service on the label.
            /// </summary>
            int servicePosition;
            /// <summary>
            /// Constructor
            /// </summary>
            /// <param name="serviceDescriptionText"></param>
            /// <param name="serviceLogoRef"></param>
            /// <param name="servicePosition"></param>
            public ServiceDescription(string serviceDescriptionText, string serviceLogoRef,
                                        int servicePosition)
            {
                this.serviceDescriptionText = serviceDescriptionText;
                this.serviceLogoRef = serviceLogoRef;
                this.servicePosition = servicePosition;
            }
        }

和一个属性:

public string pServiceDescription
{
    get
    {
        return p_sServiceDescription;
    }
    // set private structure field 1
    // set private structure field 2
    // etc...
}

如何在我的财产设置器中设置结构的每个私有字段?

如何在公共属性中设置私有结构字段

拥有可变结构通常是一个非常糟糕的主意;可变值类型语义是,而不是人们通常期望的。但是,可以,只需添加一个与任何其他常规setter类似的set即可。这不是一个好主意:

public string Text
{
    get { return text; }
    set { text = value; } // this is a really bad idea on a struct
}

如果是我,那将是一个具有private readonly字段和设置所有字段(以及仅get属性)的构造函数的不可变结构,或者是一个可能具有自动实现属性的类,即

public class ServiceDescription {
    public string Text {get;set;}
    //...
}