我最初使用枚举编写了我的解决方案:
enum Speicies {
monosiga,
leidyi,
queelslandica,
hydra
};
但后来我想为每个枚举选项添加常量属性。即。
Speicies myOrganism = monosiga;
Console.writeLine(myOrganism.database);
Console.writeLine(myOrganism.class);
//Output:
// c:\monosigadb.fasta
// Choanoflagellatea
这意味着我应该使用一个静态类,我可以使用文字作为数据库和每个物种的类变量。
但是,我希望保留具有Species对象的能力。
这种类型的"推进枚举"
的方法是什么?答案 0 :(得分:1)
这就是我的目标:
class Program
{
static void Main(string[] args)
{
List<ISpecies> species = new List<ISpecies>();
species.Add(new Cat());
species.Add(new Dog());
foreach (var specie in species)
{
Console.WriteLine(specie.ClassProp);
Console.WriteLine(specie.DatabaseProp);
}
Console.Read();
}
public interface ISpecies
{
string ClassProp { get; }
string DatabaseProp { get; }
}
public class Cat : ISpecies
{
public string ClassProp { get { return "Cat Class Property"; } }
public string DatabaseProp { get { return "Cat Database Propery"; } }
}
public class Dog : ISpecies
{
public string ClassProp { get { return "Dog Class Property"; } }
public string DatabaseProp { get { return "Dog Database Propery"; } }
}
}