gpt4 book ai didi

c# - 从基类访问子类的静态常量

转载 作者:太空宇宙 更新时间:2023-11-03 19:48:54 24 4
gpt4 key购买 nike

我有一个 Animal 基类,每个子类都需要一个静态字符串 ID 用于识别目的。

所以我可能会:

public class Dog : Animal {
public static readonly string ID = "dog";
}

我这样做是因为我经常需要在我的应用程序中使用 Dog.ID - 在我还没有实例的地方。

然而,当我有一个实例时,我也需要访问它,但我只想在基类中放置类似 GetId() 的东西:

public class Animal {
public string GetId() {
return ID;
}
}

问题是,Animal 无法访问子项中的静态 ID 字段。

有没有我忽略的方法可以做到这一点?

最佳答案

抽象方法呢?

public class Dog : Animal
{
public static readonly string ID = "dog";
public override string GetId()
{
return ID;
}
}

public abstract class Animal
{
public abstract string GetId();
}

或虚拟

public class Animal
{
public virtual string GetId()
{
return null;
}
}

关于c# - 从基类访问子类的静态常量,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/42034097/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com