构造函数GetInfo

时间:2012-02-06 21:05:14

标签: c#

我是C#的新手,正在研究课程并理解它们。我的问题是我不了解如何创建Get来检索私有变量_yournameSet来设置私有变量_yourname

namespace WindowsFormsApplication1
{
    class InputClass
    {
        private string _yourName;
        public string _banner;
        public virtual void GetInfo();
        public InputClass(String _banner)
        {
            _banner = "Enter your name";
        }
    }
}

也许我对GetInfo使用了错误的功能。但是我也想知道如果我GetInfo ()我应该在其中写_yourname,我会感到{{1}}。

4 个答案:

答案 0 :(得分:1)

听起来您正试图提供对_yourName字段的访问权限。如果是这样,那么只需使用属性

class InputClass {

  public string YourName { 
    get { return _yourName; }
    set { _yourName = value; }
  }

  ...
}

现在InputClass的消费者可以访问它,就像它是一个只读字段一样。

InputClass ic = ...;
string yourName = ic.YourName;
ic.YourName = "hello";

注意:C#为这样的简单属性提供了一种特殊的语法,这些属性只是对私有字段的包装。它被命名为自动实现的属性

class InputClass { 
  public string YourName { get; set; }
}

答案 1 :(得分:1)

您可以使用getset关键字覆盖获取者和设置。例如:

class InputClass
{
    private string _yourName;
    private string _banner;

    public YourName
    {
       get { return _yourName; }
       set { _yourName = value; }
    }

    public Banner
    {
       get { return _banner; }
       set { _banner = value; }
    }

    public InputClass(String banner)
    {
       _banner = banner;
    }
}

答案 2 :(得分:1)

在C#中有一些属性,它们具有其他语言中的公共getter和setter方法的功能:

    class InputClass
      {
        private string _yourName;
        public string _banner;

        public InputClass(String _banner)
        {
            this._banner = _banner;    
        }

        public string YourName 
        {
             get { return _yourName; }
             set { _yourName = value; }
        }

    }

但如果您愿意,可以使用自动属性:

    class InputClass
    {
       public InputClass(String _banner)
        {
            Banner = _banner;    
        }

        public string YourName 
        {
            get; set;
        }

        public string Banner 
        {
            get; set;
        }

    }

答案 3 :(得分:0)

1。)使用属性而不是成员,你得到一个免费的访问者(get)和mutator(set)。

    public string YourName { get; set; }
    public string Banner { get; set; }

2。)您可以利用默认构造函数,并在运行中声明它。

        //the old way:
        InputClass myClass = new InputClass();
        myClass.YourName = "Bob";
        myClass.Banner = "Test Banner";

        //on the fly:
        InputClass myClass = new InputClass()
        {
            YourName = "Bob",
            Banner = "Test Banner"
        }