加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 百科 > 正文

c#中的运算符用于Func

发布时间:2020-12-16 02:02:49 所属栏目:百科 来源:网络整理
导读:我需要比较两个相同类型的实例. 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) { ret
我需要比较两个相同类型的实例.

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));

输出:true;
在我看来,第一人比第二人大.你能解释一下这种情况吗?

解决方法

你的代码:

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

所以你要传递这个人并将其与第一个人(o)进行比较.

test(o2)

转变为

evaluate `o2 < o`

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

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读