gpt4 book ai didi

c# - C# 中 Func 的运算符

转载 作者:行者123 更新时间:2023-11-30 14:10:12 25 4
gpt4 key购买 nike

我需要比较两个相同类型的实例。

public class Person
{
public int Age {get;set;}
public string Name { get;set;}

public static bool operator < (Person p1, Person p2)
{
return p1.Age < p2.Age;
}
public static bool operator > (Person p1, Person p2)
{
return p1.Age > p2.Age;
}
}

现在在 Main 中我有代码:

Person o = new Person()
{
Age = 10,
Name = "Matin"
};
Func<Person, bool> test = person => person < o;
Person o2 = new Person()
{
Age = 9,
Name = "hehe"
};

Console.WriteLine(test(o2));

输出:真;在我看来,第一人称大于第二人称。你能解释一下这种情况吗?

最佳答案

您的代码:

Func<Person, bool> test = person => person < o;

因此,您正在传递这个人并将其与第一个 (o) 进行比较。

test(o2)

转换为

evaluate `o2 < o`

这是真的,因为o2.Age < o.Age (9 < 10).

关于c# - C# 中 Func<in T, bool> 的运算符,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25181031/

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