如何在c#中调用getter或setter ?
本文关键字:getter setter 调用 | 更新日期: 2023-09-27 18:03:32
我知道如何创建getter和setter
public myClass
{
public int myVal { get; set; }
// more stuff
}
但是我不知道怎么称呼它。
public myOtherClass
{
public myOtherClass()
{
myClass localMyClass = new myClass();
localMyClass.???set??? = 42;
// Intelisense doesn't seem to give any obvious options after I enter
// the period.
}
}
我应该如何设置myVal的值在localMyClass?
localMyClass.myVal = 42;
getter和setter让你像对待公共属性一样对待值。不同之处在于,你可以在获取和设置的函数中做任何你想做的事情。
例子:
存储其他变量
private int _myVal, myOtherVal;
public int MyVal { get; set { _myVal = value; myOtherVal++; } }
补数/返回常量
public int MyVal { get { return 99; } set; }
扔掉setter
private int _myVal;
public int MyVal { get { return _myVal; } set { ; } }
在这些情况下,用户会觉得它只是一个公共数据成员,并简单地键入
localMyClass.myVal = 42;
int i = localMyClass.myVal;
getter和setter允许您创建自己的实现。此外,正如Hogan所说,"有许多库和附加组件[例如MVC]。. NET]需要你使用getter和setter函数"——即使它是微不足道的{get; set;}
的情况。
Set:
localMyClass.myVal = 42
得到:
int variable = localMyClass.myVal;
从外部看,访问getter和setter的语法与访问变量的语法没有什么区别。赋值转换为setter调用,而普通表达式使用转换为getter调用。
在智能意义上,当在变量名后面放置点.
时,getter和setter列表应该打开。属性的左边应该有蓝色的标记(而不是方法的左边有洋红色的标记)。
你想要这个
localMyClass.myVal = 42;
调用setter
和
varName = localMyClass.myVal;
Get: var tmp = localMyClass.myVal;
Set: localMyClass.myVal = 2;