在C#中找到一个简单和简单的getter/setter示例

我无法理解C#语言中getter和setter的概念。在Objective-C这样的语言中,它们似乎是系统的一个组成部分,但在C#中却没有那么多(据我所知)。我已经读了书和文章,所以我的问题是,对于那些懂得吸烟者和C#中的设置器,如果您将这个概念教给一个完整的初学者(这将包括尽可能少的代码行),您将亲自使用什么样的示例?
我认为一些代码将有助于说明什么设置者和getter是:

public class Foo
{
   private string bar;

   public string GetBar()
   {
       return bar;
   }

   public void SetBar(string value)
   {
       bar = value;
   }
}

在这个例子中,我们有一个名为bar的类的私有成员。 GetBar和SetBar方法完全按照它们的名字进行操作 – 一个检索条形成员,另一个则设置它的值。

在c#1.1中有属性。基本功能也是一样的:

public class Foo
{
    private string bar;

    public string Bar
    {
        get { return bar; }
        set { bar = value; }
    }
}

私人会员酒吧在课外不可访问。然而,公共“Bar”是,并且它有两个访问者获取,正如上面的例子“GetBar()”返回私有成员,还有一个对应于前面提到的SetBar(string value)方法的集合例。

从C#3.0及更高版本开始,编译器被优化到这样的属性不需要私有成员作为源代码。编译器自动生成该类型的私有成员,并将其用作属性的来源。

public class Foo
{
   public string Bar { get; set; }
}

代码显示的是一个具有由编译器生成的私有成员的自动属性。你没有看到私人会员,但它在那里。这也引入了其他几个问题 – 主要是访问控制。在C#1.1和2.0中,您可以省略属性的get或set部分:

public class Foo
{
    private string bar;

    public string Bar
    {
        get{ return bar; }
    }
}

让您有机会限制其他对象如何与Foo类的“Bar”属性进行交互。从C#3.0及以上版本开始 – 如果您选择使用自动属性,则必须如下所示指定对该属性的访问权限:

public class Foo
{
    public string Bar { get; private set; }
}

这意味着只有类本身可以将Bar设置为某个值,然而任何人都可以读取Bar中的值。

翻译自:https://stackoverflow.com/questions/11159438/looking-for-a-short-simple-example-of-getters-setters-in-c-sharp

转载注明原文:在C#中找到一个简单和简单的getter/setter示例