我有一个项目中的多个类,除了类的名称完全相同。基本上,它们表示从配置文件在运行时加载的荣耀枚举。这些类看起来像这样:我如何在C#中像这样使用codegen类?
public class ClassName : IEquatable<ClassName> {
public ClassName(string description) {
Description = description;
}
public override bool Equals(object obj) {
return obj != null &&
typeof(ClassName).IsAssignableFrom(obj.GetType()) &&
Equals((ClassName)obj);
}
public bool Equals(ClassName other) {
return other != null &&
Description.Equals(other.Description);
}
public override int GetHashCode() {
return Description.GetHashCode();
}
public override string ToString() {
return Description;
}
public string Description { get; private set; }
}
我看不到任何理由复制此文件并更改类名称多次。当然,有一种方法可以列出我想要的课程并让它们自动为我创建。怎么样?
为什么会不正常类继承的工作?那么你会重复的唯一的东西就是构造函数。 – David 2010-01-06 14:55:49
我不想像这样的一种类型的类与这样的另一种类的类相比。继承可以处理GetHashCode,ToString和Description,但不能等于。 – 2010-01-06 14:57:29
我并不是说这特别适用于你的情况,但是,任何时候我想“我怎样才能快速复制这个X次”,就会引发一个大红旗,让我重新考虑我的设计。通常,我尝试删除重复而不是自动化。 – 2010-01-06 15:20:28