我最近一直与提供商合作,我遇到了一个有趣的情况,我希望有一个抽象的静态方法.我读了一些关于这个主题的帖子,这有点意义,但有一个很清楚的解释吗?
我最近遇到了一个问题,似乎我需要一个'静态抽象'方法.我知道为什么这是不可能的,但我怎样才能解决这个限制?
例如,我有一个抽象类,它有一个描述字符串.由于此字符串对于所有实例都是通用的,因此它被标记为static,但我想要求从此类派生的所有类都提供它们自己的Description属性,因此我将其标记为abstract:
abstract class AbstractBase
{
...
public static abstract string Description{get;}
...
}
Run Code Online (Sandbox Code Playgroud)
它当然不会编译.我想过使用接口但接口可能不包含静态方法签名.
我应该简单地使它成为非静态的,并且总是得到一个实例来获取特定于类的信息吗?
有任何想法吗?
据我所知C#,不支持虚拟静态属性.如何实现这样的行为C#?
我想归档基类的所有派生类必须覆盖静态属性.获取派生类型,我想访问一个名为的静态属性Identifier
Type t = typeof(DerivedClass);
var identifier= (String) t.GetProperty("Identifier", BindingFlags.Static).GetValue(null, null);
Run Code Online (Sandbox Code Playgroud)