我正在尝试访问具有受保护构造函数的类中的方法。任何人都可以帮助我如何创建类的实例来访问其中的方法。
谢谢,
Karteek Kuncham
答案 0 :(得分:3)
具有受保护构造函数的类对于外部世界是不可访问的,而对于其派生类是可访问的。如果你想创建那些Derived类的实例,那么你可以但是如果你想创建那个Base类的实例,那么你可以引入一些Base返回类型的静态方法,它可以在你每次调用时返回你的类的新实例实例方法,类似于Singleton模式,但不限于仅创建一个实例。
第一种方式:
public Base
{
protected Base() { }
}
public Derived : Base
{
public Derived() : Base() { }
}
用法:
Dervied d = new Derived();
第二种方式:
public Base
{
protected Base() { }
public static Base Instance() { return new Base(); }
}
用法:
Base b = Base.Instance();
答案 1 :(得分:2)
我假设你可以创建你描述的类的子类。所需要的只是在你自己的类中创建一个构造函数,它使用你需要的任何构造函数参数调用base()。
public MyDerivedClass : OtherBaseClass
{
MyDerivedClass() : base()
{ }
}
答案 2 :(得分:1)
具有受保护构造函数的类位于通常具有某种形式的静态方法的类上,这些类返回实例。
答案 3 :(得分:0)
该类是抽象类吗? 如果是,那么我认为正确的做法是继承该课程。