同时创建子类和对象

Creating a subclass and object at the same time

我正在寻找与 Java 习语等效的 C#。

在Java中,如果你有一个抽象class,你不能直接创建那个class的对象;您需要首先对其进行 subclass (并提供对抽象方法的覆盖)。但是你实际上可以同时创建子class和对象:

public abstract class Type {
  abstract Kind kind();
  public static final Type BOOLEAN =
      new Type() {
        @Override
        Kind kind() {
          return Kind.BOOLEAN;
        }
      };

以上内容并未逐字翻译成 C#;有等效的成语吗?或者你只需​​要手写,先声明一个命名的 subclass,然后创建一个 subclass 的对象?

不幸的是没有。也许您可以尝试创建一个实现您的 class Type 的私有 class,然后创建一个 returns 的方法?

但是,也许可以看看您要实现的目标。这可能不是解决您问题的正确模式。

public abstract class Type
{
    public abstract string Kind();

    public static Type BOOLEAN()
    {
        return new BooleanType();
    }

    private class BooleanType : Type
    {
        public override string Kind()
        {
            return "Boolean";
        }
    }
}