我正在使用 getter/setter 属性来获取或设置变量 如果我使用公共(public)变量来设置值,我的代码工作正常,因为我正在制作我的类的数组,但我只是想知道如何设置私有(private)的值多变的 。我的代码是
public class Person
{
//getter and setter for each variable
private string _Name;
public string Name
{
get { return _Name;}
set { _Name= value; }
}
private int _Age;
public int Age
{
get {return _Age; }
set { _Age= value; }
}
.... // other properties
// Another Class
public void setValues (Person[] p,int i)
{ p[i].Age= 30;
}
但是如果我将我的设置变量更改为私有(private),如何设置变量??
private int _Age;
public int Age
{
get {return _Age; }
private set { _Age= value; }
}
最佳答案
如果将 set 方法更改为 private,则无法在类外部设置该属性的值;这就是 private
关键字的全部意义所在。如果您想避免它被公开,我会考虑使用 protected
或 internal
关键字。
或者,正如 JNYRanger 所说,您可以从构造函数调用此 setter,这将允许您有效地在当前类“外部”设置该值。
例子:
public class Person
{
public int Age { get; private set; }
public Person (int age)
{
Age = age;
}
}
关于c#设置私有(private)变量的值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18724566/