c# - 从父类的方法中使用子类的静态覆盖属性
问题描述
是否可以在父类中拥有某种静态抽象属性,然后子类将覆盖该属性,以便父类随后能够在其方法中使用这个现已初始化的属性?
我知道这是非法代码,但它应该说明我想要实现的目标:
public class Parent {
public static abstract String PROPERTY;
public static String MyMethod() {
return $"Do something with {PROPERTY}";
}
public static String MyMethodTwo() {
return $"Do something with the same property {PROPERTY}";
}
}
public class ChildA {
public static override String PROPERTY = "A";
}
public class ChildB {
public static override String PROPERTY = "B";
}
ChildA.MyMethod() //expecting "Do something with A"
ChildB.MyMethod() //expecting "Do something with B"
现在,我正在做这样的事情,这很有效,但是当我制作许多父方法和子类时可能会重复:
public class Parent {
protected static String MyMethodBase(String property) {
return $"Do something with {MyProperty}";
}
protected static String MyMethodTwoBase(String property) {
return $"Do something with the same property {MyProperty}";
}
}
public class ChildA {
public static String PROPERTY = "A";
public static String MyMethod(){
return MyMethodBase(PROPERTY);
}
public static String MyMethodTwo(){
return MyMethodTwoBase(PROPERTY);
}
}
public class ChildB {
public static String PROPERTY = "B";
public static String MyMethod(){
return MyMethodBase(PROPERTY);
}
public static String MyMethodTwo(){
return MyMethodTwoBase(PROPERTY);
}
}
解决方案
推荐阅读
- javascript - 添加和删除事件侦听器 - JavaScript
- python - 如何使用来自 csv 文件输入的自然语言生成。我们应该使用哪个 python 模块。任何人都可以分享一个示例教程吗?
- c# - 无法在 Web Api 项目中配置 autofac
- java - 错误:在相应的 try 语句的主体中永远不会抛出异常 InterruptedException
- c# - Linq to Entity:如何查询多个 Where 属性
- php - 计算字段表单插件 Wordpress - 如果 = 0,则将字段输出设为黑色;如果 <0 则为红色;如果 > 0 则为绿色
- angular - 更新数据源后数据表不显示数据
- facebook - Curl 28 连接超时面临错误
- python - 如何在 Django Rest Framework 的 API 视图中覆盖 get 方法
- reactjs - React Hooks useState 与 Object 不一致