using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
namespace Crystal_Message
{
class Person
{
private string firstName ="";
private string lastName= "";
private string phone="";
public Person(string firstName, string lastName, string phone)
{
this.FirstName = firstName;
this.LastName = lastName;
this.PhoneNumber = phone;
}
public string FirstName
{
get { return firstName; }
private set
{
if (string.IsNullOrWhiteSpace(value)){
throw new ArgumentNullException("Must Include First Name");
}
this.firstName = value;
}
}
public string LastName
{
get { return lastName; }
private set
{
if (string.IsNullOrWhiteSpace(value)){
throw new ArgumentNullException("Must Include Last Name");
}
this.lastName = value;
}
}
public string PhoneNumber
{
get { return phone; }
private set
{
if (string.IsNullOrWhiteSpace(value)){
throw new ArgumentNullException("Must Include Phone Number");
}
this.phone = value;
}
}
public override string ToString()
{
return "First Name: " + this.FirstName + " " + " Last Name: " + this.LastName + " " + " Phone Number: " + this.PhoneNumber;
}
public override bool Equals(object obj)
{
if(obj == null)
{
return false;
}
Person testEquals = obj as Person;
if((System.Object)testEquals == null)
{
return false;
}
return (this.firstName == testEquals.firstName) && (this.lastName == testEquals.lastName) && (this.phone == testEquals.phone);
}
/*
public override int GetHashCode()
{
return
}
*/
}
}
Tôi đã làm theo các hướng dẫn của MSDN. Hai câu hỏi:C# Thực hiện Phương thức Bằng Chính xác và Làm cách nào để triển khai Phương thức GetHashCode
- Tôi đã triển khai đúng phương thức bằng?
- Ai đó có thể chỉ cho tôi cách triển khai GetHashCode đúng cho lớp học của tôi không? MSDN không x^y, nhưng tôi không thể làm điều đó cho tôi.
Chắc chắn bạn có thể sử dụng XOR, sử dụng nó trên mã băm của các thành viên. Bạn không cần phải làm vậy, chỉ cần trả lại điện thoại.GetHashCode(). Điều đó hoạt động tốt bởi vì mọi người đều có số điện thoại duy nhất. –
Cảm ơn, phương pháp equals của tôi, bất kỳ cải tiến nào, hoặc tôi đã thực hiện nó một cách chính xác? Nó có thể trở thành một vấn đề, bởi vì hai người có thể có cùng một số, sống trong cùng một ngôi nhà. –
@HansPassant Không phải ai cũng có số điện thoại duy nhất. Một số người có thể chọn không nhập số điện thoại của họ ngay cả khi họ có số điện thoại, những người khác có thể chia sẻ số điện thoại (công ty hoặc điện thoại gia đình). – hvd