簡體   English   中英

C#代碼重用公共類Foo <T> 方法參數

[英]C# code re-use public class Foo<T> method parameters

我希望有人可以幫助我解決問題。 我正在嘗試制作一個新的Type類:

public class Foo<T>

其唯一方法的工作是遍歷另一個類的屬性。 大約有20個類別,定義了不同數量的屬性:

public class Bar {
    public int Id { get; set; }
    public string Name { get; set; }
}

public class Shirt {
    public string Color { get; set; }
    public string Size { get; set; }
    public string Brand { get; set; }
}

public class Pants {
    public string Color { get; set; }
    public string Waist { get; set; }
    public string Length { get; set; }
    public string Inseam { get; set; }
}

而公共類Foo的方法是:

public class Foo<T> {
    public string FooMethod(T before, T after /* other variables? */) {
        // compare before & after
    }
}

每個命名相同的類將兩次進入Foo的主方法,但具有不同的屬性值。 所以Bar 之前的ID和名稱可能是1 & "Bar" ,而Bar 后的ID和名稱可能是2 & "BarBar"

從這里開始,將要進行其他操作以比較before和after中的每個屬性。 但是,由於每個類中屬性的數量各不相同,並且我只想使用一種方法,所以我感到兩難。

如果要在FooMethod中比較多種類型的對象,則可以在所有類(Bar,Shirt,Pants ...)中覆蓋Equals和GetHashcode方法,並在那里進行比較。 這樣,您的FooMethod將只在before.Equals(after)進行比較。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM