Csharp/CSharp Tutorial/struct/Equals — различия между версиями
Admin (обсуждение | вклад) м (1 версия) |
Admin (обсуждение | вклад) м (1 версия) |
(нет различий)
|
Текущая версия на 12:17, 26 мая 2010
Value type equality (default behavior)
using System;
using System.Collections.Generic;
using System.Globalization;
using System.IO;
using System.Text;
using System.Security.Cryptography;
struct Car
{
public string Make;
public string Model;
public uint Year;
public Car(string make, string model, uint year)
{
Make = make;
Model = model;
Year = year;
}
}
public class MainClass
{
public static void Main()
{
Car c1 = new Car("BMW", "330Ci", 2001);
Car c2 = new Car("BMW", "330Ci", 2001);
Console.WriteLine(c1.Equals(c2)); // Prints "true"
}
}
True
Value type equality (override)
using System;
using System.Collections.Generic;
using System.Globalization;
using System.IO;
using System.Text;
using System.Security.Cryptography;
struct Car
{
public string Make;
public string Model;
public uint Year;
public Car(string make, string model, uint year)
{
Make = make;
Model = model;
Year = year;
}
public bool Equals(Car c)
{
return c.Make == this.Make &&
c.Model == this.Model &&
c.Year == this.Year;
}
public override bool Equals(object obj)
{
if (obj is Car)
return Equals((Car)obj);
return false;
}
}
public class MainClass
{
public static void Main()
{
Car c1 = new Car("A", "4", 2005);
Car c2 = new Car("A", "4", 2005);
Console.WriteLine(c1.Equals(c2)); // Prints "true"
}
}
True