我对这个简短的手感到有些困惑。这是否允许我访问Var并设置myVar?
object.myVar = 5;
newNum = object.myVar;
我不懂。
private int myVar;
public int MyProperty
{
get { return myVar; }
set { myVar = value; }
}
答案 0 :(得分:2)
它不允许你,这就是重点。您可以通过公共财产访问私人变量。
答案 1 :(得分:2)
不,这意味着您有一个名为myVar
的“隐藏”私有整数,该类外无人可以看到,但来自外部的人只能看到名为MyProperty
的属性,碰巧重定向到myVar
,但他们不会知道它!
this.myVar = 12;
int test = this.myVar; /*(this. would actually be optionnal)*/
从外面看,如果myInstance
是您班级的一个实例,那么人们可以这样做:
int test = myInstance.MyProperty;
myInstance.MyProperty = 12;
属性的目的是隐藏私有成员,并控制它们的访问方式。
答案 2 :(得分:1)
在3.0版及更高版本中,您还可以执行以下操作:
public int MyProperty { get; set; }
并按如下方式访问它们:
object.MyProperty = 5;
newNum = object.MyProperty;
答案 3 :(得分:1)
不,它不会多余
public int MyProperty { get; set;}
这会创建一个公共变量和一个私有变量。 外部类可以命令它,但有一个隐藏的私有变量将使用get set方法。这仍然是安全的,因为类本身将改变值而不是来自外部的其他方法。
答案 4 :(得分:0)
不允许您使用以下命令访问变量myVar:
object.MyProperty = 5;
newNum = object.MyProperty;
你可以完全摆脱支持变量并执行此操作:
public int MyProperty
{
get; set;
}
仍然允许您像我的答案中的第一个代码部分一样访问您的媒体资源。
答案 5 :(得分:-1)
public int MyProperty { get; set; }
这不是多余的,因为如果MyProperty公开,它已经可以'get'和'set'了吗?