Sim*_*ons 13 .net c# oop encapsulation
我有一个代码段:
public class MyClass
{
private string _myProperty;
public string MyProperty
{
get
{
return _myProperty;
}
set
{
_myProperty = value;
}
}
}
Run Code Online (Sandbox Code Playgroud)
这有什么意义?我可以将_myProperty字符串声明为public,并且我的任何类对象都可以直接访问它们并获取或设置值.
相反,我们_myProperty使用类对象使私有和使用get和set来访问它们.
在任何一种情况下,类对象都能够访问它们,结果总是相同的.
那么为什么要用这种方法?这只是因为我可以在setter中实现一些约束吗?
除此之外会对成员变量造成什么危害呢?在这个例子中,我可以公开_myProperty公开,而不是像OOP所暗示的那样将它限制在这个类中.
Jon*_*eet 18
不,结果并不总是一样的.
请注意,从C#2开始,您的代码可以缩短很多:
public class MyClass
{
public string MyProperty { get; set; }
}
Run Code Online (Sandbox Code Playgroud)