如何在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?

如何在c#中调用getter或setter ?

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;