【发布时间】:2016-05-02 12:28:58
【问题描述】:
我做一个抽象类层次结构,例如:
abstract public class BaseDirectory {
}
abstract public class BaseUser() {
protected readonly BaseDirectory _DIR
BaseUser(BaseDirectory dir) {
_DIR = dir;
}
}
然后我实现那个抽象层次结构:
class MyDirectory : BaseDirectory {
internal void SomeMethod() {
}
}
class MyUser : BaseUser {
MyUser(MyDirectory dir) : base(dir)
{
}
internal void SomeMethod() {
_DIR.SomeMethod(); // <- how to do this?
}
}
现在,从MyUser 类,我希望能够访问MyDirectory 实例,我当然可以在dir 中期待。 C# 程序员如何在风格上实现这一点? 用包含未转换的 MyDirectory 的私有属性覆盖 MyUser 中的 _DIR,在任何地方都使用转换,完全是什么?
【问题讨论】:
-
您可以将
SomeMethod添加到BaseDirectory作为abstract方法吗? -
@juharr 假设
SomeMethod特定于MyDirectory/MyUser,并且在其他实现中必须抛出NotImplementedException。
标签: c# class abstract-class