Danh mục

Giáo trình phân tích quy trình nghiên cứu tạo ra những kiểu dữ liệu mới đa hình p8

Số trang: 5      Loại file: pdf      Dung lượng: 905.75 KB      Lượt xem: 11      Lượt tải: 0    
Hoai.2512

Hỗ trợ phí lưu trữ khi tải xuống: miễn phí Tải xuống file đầy đủ (5 trang) 0
Xem trước 2 trang đầu tiên của tài liệu này:

Thông tin tài liệu:

Tham khảo tài liệu 'giáo trình phân tích quy trình nghiên cứu tạo ra những kiểu dữ liệu mới đa hình p8', tài chính - ngân hàng, kế toán - kiểm toán phục vụ nhu cầu học tập, nghiên cứu và làm việc hiệu quả
Nội dung trích xuất từ tài liệu:
Giáo trình phân tích quy trình nghiên cứu tạo ra những kiểu dữ liệu mới đa hình p8 . Ngôn Ngữ Lập Trình C# Từ ngữ ngầm định (implicit) được sử dụng khi một chuyển đổi đảm thành công mà không mất bất cứ thông tin nào của dữ liệu nguyên thủy. Trường hợp ngược lại, tường minh (explicit) không đảm bảo bảo toàn dữ liệu sau khi chuyển đổi do đó việc này sẽ được thực hiện một cách công khai. Ví dụ 6.1 sẽ trình bày dưới đây minh họa cách thức mà chúng ta có thể thực thi chuyển đổi tường minh và ngầm định, và thực thi một vài các toán tử của lớp Fraction. Trong ví dụ này chúng ta sử dụng hàm Console.WriteLine() để xuất thông điệp ra màn hình minh họa khi phương thức được thi hành. Tuy nhiên cách tốt nhất là chúng ta sử dụng trình bebug để theo dõi từng bước thực thi các lệnh hay nhảy vào từng phương thức được gọi.  Ví dụ 6.1: Định nghĩa các chuyển đổi và toán tử cho lớp Fraction. ----------------------------------------------------------------------------- using System; public class Fraction { public Fraction(int numerator,int denominator) { Console.WriteLine(In Fraction Constructor( int, int) ); this.numerator = numerator; this.denominator = denominator; } public Fraction(int wholeNumber) { Console.WriLine(In Fraction Constructor( int )); numerator = wholeNumber; denominator = 1; } public static implicit operator Fraction( int theInt ) { Console.WriteLine( In implicit conversion to Fraction); return new Fraction( theInt ); } public static explicit operator int( Fraction theFraction ) { Console.WriteLine(In explicit conversion to int); return theFraction.numerator / theFraction.denominator; } public static bool operator == ( Fraction lhs, Fraction rhs) { 158 . Nạp Chồng Toán Tử . Ngôn Ngữ Lập Trình C# Console.WriteLine(In operator ==); if ( lhs.numerator == rhs.numerator && lhs.denominator == rhs.denominator ) { return true; } // thực hiện khi hai phân số không bằng nhau return false; } public static bool operator != ( Fraction lhs, Fraction rhs) { Console.WriteLine(In operator !=); return !( lhs == rhs ); } public override bool Equals( object o ) { Console.WriteLine(In method Equals); if ( !(o is Fraction )) { return false; } return this == ( Fraction ) o; } public static Fraction operator+( Fraction lhs, Fraction rhs ) { Console.WriteLine(In operator +); if (lhs.denominator == rhs.denominator ) { return new Fraction( lhs.numerator + rhs.numerator, lhs.denominator ); } //thực hiện khi hai mẫu số khộng bằng nhau int firstProduct = lhs.numerator * rhs.denominator; int secondProduct = rhs.numerator * lhs.denominator; return new Fraction( firstProduct + secondProduct, lhs.denominator * rhs.denominator); } public override string ToString() { 159 . Nạp Chồng Toán Tử . Ngôn Ngữ Lập Trình C# string s = numerator.ToString() + / + denominator.ToString(); return s; } //biến thành viên lưu tử số và mẫu số private int numerator; private int denominator; } public class Tester { static void Main() { Fraction f1 = new Fraction( 3, 4); Console.WriteLine(f1:{0},f1.ToString()); Fraction f2 = new Fraction( 2, 4); Console.WriteLine(f2:{0},f2.ToString()); Fraction f3 = f1 + f2; Console.WriteLine(f1 + f2 = f3:{0},f3.ToString()); Fraction f4 = f3 + 5; Console.WriteLine(f4 = f3 + 5:{0},f4.ToString()); Fraction f5 = new Fraction( 2, 4); if( f5 == f2 ) { Console.WriteLine(f5:{0}==f2:{1}, f5.ToString(), f2.ToString()); } } ...

Tài liệu được xem nhiều: