gpt4 book ai didi

c# - 如何创建一个接受 2 个相同类型的对象、一个属性并比较值的方法

转载 作者:太空狗 更新时间:2023-10-29 22:22:20 24 4
gpt4 key购买 nike

我正在尝试创建一个辅助函数(用于一个类),它接受 2 个对象并比较两个类的属性

这些属性只是简单的类型,如 stringintbool

用法

Compare(widget1,widget2,x => x.Name)

到目前为止我有什么

  private void CompareValue<T>(Order target, Order source, Func<Order, T> selector)
{
if(target.selector != source.selector)
{
// do some stuff here
}
}

显然上面的代码不起作用

最佳答案

您可以将约束添加到 IEquatable<T> :

private void CompareValue<T>(Order target, Order source, Func<Order, T> selector)
where T : IEquatable<T>
{
if (!selector(target).Equals(selector(source))
{
// ... Do your stuff
}
}

这将处理您指定的类型(以及许多其他类型),并允许编译器保护您免受可能不合适的用例的影响。

请注意,您还需要调用 Func<T,U> ,即:selector(target)selector(source) , 创造结果值(value)。

关于c# - 如何创建一个接受 2 个相同类型的对象、一个属性并比较值的方法,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27556605/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com