相关疑难解决方法(0)

为什么我不能在C#中使用抽象静态方法?

我最近一直与提供商合作,我遇到了一个有趣的情况,我希望有一个抽象的静态方法.我读了一些关于这个主题的帖子,这有点意义,但有一个很清楚的解释吗?

.net c# language-design

175
推荐指数
8
解决办法
10万
查看次数

C#,像方法一样实现'静态抽象'

我最近遇到了一个问题,似乎我需要一个'静态抽象'方法.我知道为什么这是不可能的,但我怎样才能解决这个限制?

例如,我有一个抽象类,它有一个描述字符串.由于此字符串对于所有实例都是通用的,因此它被标记为static,但我想要求从此类派生的所有类都提供它们自己的Description属性,因此我将其标记为abstract:

abstract class AbstractBase
{
    ...
    public static abstract string Description{get;}
    ...
}
Run Code Online (Sandbox Code Playgroud)

它当然不会编译.我想过使用接口但接口可能不包含静态方法签名.

我应该简单地使它成为非静态的,并且总是得到一个实例来获取特定于类的信息吗?

有任何想法吗?

c# static abstract

41
推荐指数
4
解决办法
3万
查看次数

如何实现虚拟静态属性?

据我所知C#,不支持虚拟静态属性.如何实现这样的行为C#

我想归档基类的所有派生类必须覆盖静态属性.获取派生类型,我想访问一个名为的静态属性Identifier

Type t = typeof(DerivedClass);
var identifier= (String) t.GetProperty("Identifier", BindingFlags.Static).GetValue(null, null);
Run Code Online (Sandbox Code Playgroud)

c# virtual static properties

9
推荐指数
2
解决办法
1万
查看次数

标签 统计

c# ×3

static ×2

.net ×1

abstract ×1

language-design ×1

properties ×1

virtual ×1