有人在此说,如果会员受到保护,您可以访问它们: Are private members inherited in C#?
有人真的尝试过吗?
我试过它甚至不能用于保护:
public partial class Base
{
protected IObject myObject;
}
如果我派生(Base在另一个命名空间中,但我当然导入该命名空间并不重要)
public partial class Derive: Base
{
}
Intellisense不会在Derive Class中显示myObject。
那么如果我需要在所有派生类中使用myObjhect成员来调用某些方法,我该怎么办?如果我必须复制该成员那么继承的用途是什么?
更新:我忘了Derive:Base但那只是mystypo,当然我做到了。
答案 0 :(得分:2)
你没有衍生出来。要派生,您必须执行以下操作:
public class Base
{
protected IObject myObject;
}
public class Derive : Base
{
}
myObject
现已在Derive
中提供。部分意味着您将类定义拆分为多个文件。
答案 1 :(得分:1)
您必须实际派生自Base
类:
public partial class Derive : Base
{
}
答案 2 :(得分:1)
派生类可以访问 公共,受保护,内部和 保护基地的内部成员 类。即使是派生类 继承基础的私有成员 class,它无法访问这些成员。 但是,所有这些私人成员都是 仍存在于派生类中 他们可以做同样的工作 基类本身。例如, 假设一个受保护的基类 方法访问私有字段。那 字段必须存在于派生中 class为了继承的基础 类方法正常工作。
来自:http://msdn.microsoft.com/en-us/library/ms173149.aspx
检查this
答案 3 :(得分:0)
导出时是不是缺少基类?应该使用声明为protected的myObject。
public partial class Derive : Base
{
}