1

嗨,我最近开始学习 C#,并且对属性有一些疑问。假设我有这样的声明:

private int minAge { get; set; }

这是否转化为:

private int minAge

public int MinAge
{
    get { return this.minAge; }
    set { this.minAge = Convert.ToInt16(TextBox1.Text); } //this is what I would like                     to set the field to
}

假设我有一个按钮,当我按下该按钮时,我需要它来设置 minAge 字段,然后返回数据。我怎样才能做到这一点?

我试过这个,但它似乎不起作用:

   minAge.get //to return data
   minAge.set =  Convert.ToInt16(TextBox1.Text); //to set the data
4

6 回答 6

2

您在类中定义属性并获取和设置属性,您必须使用类实例

YourClass objYourClass = new objYourClass;
int minAge= objYourClass.MinAge; //To get

objYourClass.MinAge =Convert.ToInt16(TextBox1.Text); //o set the property
于 2012-10-07T10:04:49.070 回答
2

您可以通过以下方式设置属性:

minAge = 10;

要检索属性,您可以执行以下操作:

int age = minAge; // retrieves the age via the minAge property

请注意,这必须在Class定义 this 属性的内部。如果您尝试为对象设置 minAge 的值,您可以执行以下操作:

var obj = new YourClass(); 

obj.minAge = 100; // sets minAge to 100

int minAge = obj.minAge; // Assigns the minAge variable to that of `obj` minAge value.

和...之间的不同

 public int minAge { get; set; }

和:

 private int minAge

public int MinAge
{
   get { return this.minAge; }
   set { this.minAge = Convert.ToInt16(TextBox1.Text); } //this is what I would like                     to set the field to

}

如果您使用的是 .NET 框架 (4+) 的最新版本之一,MinAge 是否使用了MinAge不再需要的支持属性。

于 2012-10-07T10:06:08.287 回答
1

属性的 set 和 get 与下划线成员的类型相同...

private int minAge

public int MinAge
{
    get { return this.minAge; }
    set { this.minAge = value } //"value" is of type int
}
于 2012-10-07T10:05:09.520 回答
1

你要做的就是公开你的财产:

 public int minAge { get; set; }

然后你可以使用 get 和 set (隐式):

 int age = minAge; //to return data
 minAge =  Convert.ToInt32(TextBox1.Text); //to set the data
于 2012-10-07T10:06:02.967 回答
1

如果您在 C# 中设置属性,则不必访问 get 和 set,它会自动完成:

// Get
int age = this.MinAge;

// Set
this.MinAge = Convert.ToInt16(TextBox1.Text);

您可以像这样创建属性:

private int _minAge

public int MinAge
{
    get { return _minAge; }
    set { _minAge = value; }
}

或者,如果您使用 .NET 3.5 或更高版本,您可以简单地使用:

public int MinAge
{
    get;
    set;
}

底层类型由编译器自动创建。

于 2012-10-07T10:08:34.177 回答
1

实际上

public int MinAge { get; set; }

被编译器翻译成类似的东西

private int minAge_backfield;

public int MinAge 
{
get { return minAge__backingField;} 
set { minAge__backingField = value;}
}

这在 C# 中称为自动属性,其用法很简单

var val = MinAge; 

或者

MinAge = 10;

我为此写了一篇博文。

于 2012-10-07T10:10:50.250 回答