我有一个结构:
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中设置结构的每个私有字段?
答案 0 :(得分:4)
拥有可变结构通常是一个非常糟糕的主意;可变值类型语义是不人们通常期望的。但是,可以,只需添加一个与其他常规设置器一样的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;}
//...
}