P. 1
Giao Trinh Ngon Ngu C#

Giao Trinh Ngon Ngu C#

4.0

|Views: 215|Likes:
Published by xuanan1912

More info:

Published by: xuanan1912 on Apr 10, 2009
Copyright:Attribution Non-commercial

Availability:

Read on Scribd mobile: iPhone, iPad and Android.
download as PDF, TXT or read online from Scribd
See more
See less

10/17/2011

pdf

text

original

Nếu chúng ta nạp chồng toán tử bằng (==), thì chúng ta cũng nên phủ quyết phương thức ảo
Equals() được cung cấp bởi lớp object và chuyển lại cho toán tử bằng thực hiện. Điều này cho
phép lớp của chúng ta thể tương thích với các ngôn ngữ .NET khác không hỗ trợ tính nạp

Nạp Chồng Toán Tử

156

Ngôn Ngữ Lập Trình C#

chồng toán tử nhưng hỗ trợ nạp chồng phương thức. Những lớp FCL không sử dụng nạp
chồng toán tử, nhưng vẫn mong đợi lớp của chúng ta thực hiện những phương thức cơ bản
này. Do đó ví dụ lớp ArrayList mong muốn chúng ta thực thi phương thức Equals().
Lớp object thực thi phương thức Equals() với khai báo sau:
public override bool Equals( object 0 )
Bằng cách phủ quyết phương thức này, chúng ta cho phép lớp Fraction hành động một cách
đa hình với tất cả những lớp khác. Bên trong thân của phương thức Equals() chúng ta cần
phải đảm bảo rằng chúng ta đang so sánh với một Fraction khác, và nếu như chúng ta đã thực
thi một toán tử so sánh bằng thì có thể định nghĩa phương thức Equals() như sau:
pubic override bool Equals( object o)
{

if ( !(o is Fraction) )
{
return false;
}
return this == (Fraction) o;

}

Toán tử is được sử dụng để kiểm tra kiểu của đối tượng lúc chạy chương trình có tương thích
với toán hạng trong trường hợp này là Fraction. Do o là Fraction nên toán tử is sẽ trả về true.

You're Reading a Free Preview

Download
scribd
/*********** DO NOT ALTER ANYTHING BELOW THIS LINE ! ************/ var s_code=s.t();if(s_code)document.write(s_code)//-->