如何在LINQ C#编程中同时使用Take和Skip运算符
我们正在创建Employee类的两个实例e和e1。e分配给e1。这两个对象都指向同一个参考,因此对于所有Equals,我们将得到预期的输出。
在第二种情况下,即使属性值相同,我们也可以观察到。等于返回false。本质上,当参数引用不同的对象时。等于不检查值,并且始终返回false。
例子1
class Program{
static void Main(string[] args){
Employee e = new Employee();
e.Name = "Test";
e.Age = 27;
Employee e2 = new Employee();
e2 = e;
var valueEqual = e.Equals(e2);
Console.WriteLine(valueEqual);
//第二种情况
Employee e1 = new Employee();
e1.Name = "Test";
e1.Age = 27;
var valueEqual1 = e.Equals(e1);
Console.WriteLine(valueEqual1);
Console.ReadLine();
}
}
class Employee{
public int Age { get; set; }
public string Name { get; set; }
}输出结果
True False
例子2
class Program{
static void Main(string[] args){
Employee e = new Employee();
e.Name = "Test";
e.Age = 27;
Employee e2 = new Employee();
e2 = e;
var valueEqual = e.Equals(e2);
Console.WriteLine(valueEqual);
Employee e1 = new Employee();
e1.Name = "Test";
e1.Age = 27;
var valueEqual1 = e.Equals(e1);
Console.WriteLine(valueEqual1);
Console.ReadLine();
}
}
class Employee{
public int Age { get; set; }
public string Name { get; set; }
public override bool Equals(object? obj){
if (obj == null)
return false;
if (this.GetType() != obj.GetType()) return false;
Employee p = (Employee)obj;
return (this.Age == p.Age) && (this.Name == p.Name);
}
public override int GetHashCode(){
return Age.GetHashCode() ^ Name.GetHashCode();
}
}输出结果
True True
热门推荐
4 万寿祝福语简短
10 高考祝福语简短10字
11 职场离职文案祝福语简短
12 校长退休文案祝福语简短
13 上班收到花束祝福语简短
14 许愿星姐妹祝福语简短
15 生日贺卡祝福语 简短独特
16 开店大吉文案祝福语简短
17 双节祝福语简短唯美
18 新年过后奋斗祝福语简短