如果创建一个MyError类,可以这样调用:
static void Main(string[] args)
{
MyError.ErrorTypeA.show();
MyError.ErrorTypeB.show();
}
我觉得应该把MyError声明为一个静态类,
但是如何声明那些具体的错误[ErrorTypeA,ErrorTrypeA,...],
让每个错误都有一个共同的方法show();
public static class MyError
{
public static ??? ErrorTypeA;
}
interface IMyErr
{
void show();
}
class ErrorTypeA : IMyErr
{
public void show()
{
...
}
}
class ErrorTypeB : IMyErr
{
public void show()
{
...
}
}
class ErrorTypeC : IMyErr
{
public void show()
{
...
}
}
public static class MyError
{
public static IMyErr ErrorTypeA = new ErrorTypeA();
public static IMyErr ErrorTypeB = new ErrorTypeB();
public static IMyErr ErrorTypeC = new ErrorTypeC();
}
foreach (var f in typeof(MyError).GetFields(BindingFlags.NonPublic))
{
if (f.Name.StartWith("ErrorType"))
f.GetMethod("show").Invoke(null);
}
抱歉,我没表达清楚,我的问题是,如何实现MyError这个类呢?
可以去知乎上面或者github上面有
很明显是多态,MyError作为基类,其他的A,B,C,....作为 继承子类,public 或者private继承它,使用一般的方法也行,重写它们