同时创建子类和对象
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";
}
}
}
我正在寻找与 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";
}
}
}