【发布时间】:2011-08-18 13:05:36
【问题描述】:
protected 和 private 声明之间是否有任何区别/优势,除了它在类之外无法访问。
【问题讨论】:
-
这不是区别,而是相似
-
我的意思是如果有其他用途
标签: .net oop access-modifiers
protected 和 private 声明之间是否有任何区别/优势,除了它在类之外无法访问。
【问题讨论】:
标签: .net oop access-modifiers
这些是accessibility modifiers - 这就是他们的重点。
【讨论】:
Friend 和 internal 是同义词
private 成员只能从类内部访问,protected 成员也可以由继承自它的类访问。
【讨论】:
具有protected 访问修饰符的成员可以在派生类中访问。而那些拥有private 访问修饰符的人只能在同一个类中访问。
【讨论】:
查看 MSDN 中的此示例:
class A
{
protected int x = 123;
}
class B : A
{
void F()
{
A a = new A();
B b = new B();
a.x = 10; // Error
b.x = 10; // OK
}
}
看到 a.x 抛出错误,因为您试图从类外部访问属性(从类 B 内部调用 A 中的属性)。但是 b.x 没问题,因为你是从 B 内部调用它的。有意义吗?
【讨论】:
struct 成员只能声明为public、private 或internal。
class 成员可以声明为public、protected internal、protected、internal 或private。
MSDN 上的Access Modifiers
【讨论】: