我有一個項目中的多個類,除了類的名稱完全相同。基本上,它們表示從配置文件在運行時加載的榮耀枚舉。這些類看起來像這樣:我如何在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