c#代码重用公共类Foo方法参数
本文关键字:方法 参数 Foo 代码 | 更新日期: 2023-09-27 18:10:07
我希望有人能帮我解决一个问题。我正在尝试创建一个类型为:
的新类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"
。
如果你想在你的FooMethod中比较多种类型的对象,你可以在你所有的类(Bar, Shirt, Pants…)中重写Equals和GetHashcode方法,并在那里进行比较。这样,你的FooMethod将只调用before.Equals(after)
来比较它们。