我正在尝试制作一个化学方程式平衡器。为此,我创建了一个类元素:
class Element
{
public elemEnum ElemType {get; set;}
public double Amount {get; set;} // How many atoms of this type in the formula
}
*
elemEnum
是所有化学元素的枚举。我想让
set
的 ElemType
将字符串解析为枚举,但由于 set
只能接收与 value
相同类型的值,因此我决定添加一个方法:public void SetElemType(string type)
{
this.ElemType = (elemEnum)Enum.Parse(typeof(elemEnum), type);
}
是否有一个选项可以让
ElemType
属性只能由 SetElemType
方法设置,而不必使其成为 private
并添加 GetElemType
方法? 最佳答案
由于评论中最明显的解决方案还没有写成答案:
使用 private setter 。
class Element
{
public ElemEnum ElemType {get; private set;}
public double Amount {get; set;}
public void SetElemType(string type)
{
this.ElemType = (ElemEnum)Enum.Parse(typeof(ElemEnum), type);
}
}
这样, ElemType
只能从您自己的类中设置。关于c# - 使属性只能通过特定方法设置,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/33196609/