leo*_*ora 3 c# variables inheritance protected
我有以下类层次结构
public class Third : Second
{
}
public class Second : First
{
}
public class First
{
private int MyVariable;
}
Run Code Online (Sandbox Code Playgroud)
如果我想从Second和Third访问MyVariable,我可以使MyVariable受到保护,但如果我想从Second而不是Third访问该怎么办.那可能吗?
Eri*_*ert 13
如果我要访问
MyVariable的Second和Third我能做出MyVariable保护.如果我想从访问Second但不是Third.那可能吗?
是! 这是一种技巧:
class First
{
private int myVariable;
public class Second : First
{
public Second() { myVariable = 123; } // Legal!
}
}
class Third : First.Second
{
public Third() { myVariable = 456; } // Illegal!
}
Run Code Online (Sandbox Code Playgroud)
这是另一个:
// Alpha.DLL
public class First
{
internal int myVariable;
}
public class Second : First
{
public Second() { myVariable = 123; } // Legal!
}
// Bravo.DLL
class Third : Second
{
public Third() { myVariable = 456; } // Illegal!
}
Run Code Online (Sandbox Code Playgroud)
你不是以面向对象的方式思考这个问题.
你说每个人Third都是Second.但是您希望每个Second人都可以访问变量,但您不希望任何Third人拥有访问权限.
但如果Third没有访问权限,那就不是了Second!