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
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()); } } ...
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ìm kiếm theo từ khóa liên quan:
giáo trình đại học tài liệu mạng giáo trình cơ điện giáo trình thiết kế tài liệu kế toánTài liệu liên quan:
-
Giáo trình phân tích một số loại nghiệp vụ mới trong kinh doanh ngân hàng quản lý ngân quỹ p5
7 trang 473 0 0 -
MARKETING VÀ QUÁ TRÌNH KIỂM TRA THỰC HIỆN MARKETING
6 trang 301 0 0 -
122 trang 217 0 0
-
QUY CHẾ THU THẬP, CẬP NHẬT SỬ DỤNG CƠ SỞ DỮ LIỆU DANH MỤC HÀNG HÓA BIỂU THUẾ
15 trang 209 1 0 -
BÀI GIẢNG KINH TẾ CHÍNH TRỊ MÁC - LÊNIN - TS. NGUYỄN VĂN LỊCH - 5
23 trang 209 0 0 -
Giáo trình hướng dẫn phân tích các thao tác cơ bản trong computer management p6
5 trang 198 0 0 -
Giáo trình chứng khoán cổ phiếu và thị trường (Hà Hưng Quốc Ph. D.) - 4
41 trang 197 0 0 -
BÀI GIẢNG LÝ THUYẾT MẠCH THS. NGUYỄN QUỐC DINH - 1
30 trang 173 0 0 -
HỌC VIỆN CÔNG NGHỆ BƯU CHÍNH VIỄN THÔNG - NGÂN HÀNG ĐỀ THI HẾT HỌC PHẦN HỌC PHẦN: TOÁN KINH TẾ
9 trang 172 0 0 -
Giáo trình phân tích giai đoạn tăng lãi suất và giá trị của tiền tệ theo thời gian tích lũy p10
5 trang 169 0 0