如何在公共属性中设置私有结构字段
本文关键字:设置 结构 字段 属性 | 更新日期: 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;}
//...
}