我“马小糊涂这一手短。这是否让我acesss myVar的,并设置myVar的,像这样?C#设置/获取速记问题
object.myVar = 5;
newNum = object.myVar;
我不明白这一点。
private int myVar;
public int MyProperty
{
get { return myVar; }
set { myVar = value; }
}
我“马小糊涂这一手短。这是否让我acesss myVar的,并设置myVar的,像这样?C#设置/获取速记问题
object.myVar = 5;
newNum = object.myVar;
我不明白这一点。
private int myVar;
public int MyProperty
{
get { return myVar; }
set { myVar = value; }
}
没有,这是什么意思是,你有一个“隐藏”的私人整数称为myVar
该类之外没有人能看到,但是从外面只能看到一个名为MyProperty
属性,出现这种情况的人重定向到myVar
,但他们不会知道它!
从里面,你可以这样做:
this.myVar = 12;
int test = this.myVar; /*(this. would actually be optionnal)*/
从外面看,如果myInstance
是你的类的实例,人们可以这样做:
int test = myInstance.MyProperty;
myInstance.MyProperty = 12;
性质的观点是隐藏私人成员,并控制他们的访问方式。
它不允许你,那是你点通过公共属性来访问私有变量
在3.0及以上版本,你也可以这样做:。
public int MyProperty { get; set; }
而像这样访问他们:
object.MyProperty = 5;
newNum = object.MyProperty;
应该是'object.MyProperty'不是MyVar。 – Mauro 2010-10-15 07:53:20
@Mauro:很好,谢谢! – 2010-10-15 07:54:11
不,它允许您使用这个来访问你的变量myVar的:
object.MyProperty = 5;
newNum = object.MyProperty;
你可以摆脱后盾变量的完全和做虽然:
public int MyProperty
{
get; set;
}
这仍然会允许您访问您的财产,如f我在我的答案中编码部分。
public int MyProperty { get; set; }
不会这是多余的,因为如果是myProperty的市民已经可以“得到”和“设置”?
没有也不会是多余的
public int MyProperty { get; set;}
这将创建一个公共和私有变量。 外部类可以命令它,但有一个隐藏的私有变量,将使用get set方法。这仍然是安全的,因为类本身会改变数值,而不是从外部改变其他方法。
什么简写? – annakata 2010-10-15 07:48:44
这不是get/set的简写。速记将是自动属性。 'public int MyProperty {get;组; }'。 – RPM1984 2010-10-15 07:50:53
除了别人的回答,你的代码不能被编译,因为'object'不是一个有效的变量名:D – 2010-10-15 07:55:50