... static void Main() { Location loc1; // gán cho biến thành viên loc1.xVal = 10 0; loc1.yVal = 250; // sử dụng thuộc tính loc1.x = 300; loc1.y = 400; Console.WriteLine( loc1 ); } Hãy cẩn thận với việc ... void Main() { Location loc1; loc1.xVal = 10 0; //loc1.yVal = 250; Console.WriteLine( loc1 ); } Chúng ta nhận lỗi biên dịch sau: Use of unassigned local variable ‘loc1’ Một mà gán tất giá trị cấu ... thành viên lưu tọa độ x, y public int xVal; public int yVal; } public class Tester { static void Main() { Location loc1; loc1.xVal = 10 0; loc1.yVal = 250; Console.WriteLine(“loc1”); } } ...
... viên cấu trúc] 16 5 Cấu Trúc Ngôn Ngữ Lập Trình C# } Ví dụ 7 .1 sau minh họa cách tạo cấu trúc Kiểu Location thểđiểm không gian hai chiều Lưu ý cấu trúc Location khai báo xác thực khai báo với ... loc.x = 50; loc.y = 10 0; Console.WriteLine(“Loc1 location: {0}”, loc); } static void Main() { Location loc1 = new Location( 200, 300); Console.WriteLine(“Loc1 location: {0}”, loc1); Tester t = new ... Ngôn Ngữ Lập Trình C# Câu hỏi 1: Khi sử dụng toán tử chuyển đổi? Thế chuyển đổi tường minh chuyển đổi ngầm định? Câu hỏi 2: Cóthể tạo ký toán tử riêng ta thực thi nạp chồng toán tử hay không?...
... 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 ... trị 16 /15 kết số nguyên trả Một số phép chuyển đổi tốt cách sử dụng làm tròn số Tiếp theo sau toán tử so sánh (==) toán tử so sánh không (!=) Chúng ta nên nhớ thực thi toán tử so sánh phải thực ... định thực boxing số nguyên numerator sau gọi phương thức ToString(), trả chuỗi thể giá trị số nguyên numerator Sau ta nối chuỗi với “/” cuối chuỗi thể giá trị mẫu số Với lớp Fraction tạo ra, thực...
... trực quan hành động lớp mà xây dựng giống lớp xây dựng sẵn Tuy nhiên, việc nạp chồng toán tử làm cho mã nguồn phức tạp cách khó quảnlý phá Nạp Chồng Toán Tử 15 4 Ngôn Ngữ Lập Trình C# vỡ cách thể ... secondFraction trình biên dịch chuyển biểu thức vào: Fraction.operator+(firstFraction, secondFraction) Kết sau thực đối tượng Fraction trả về, trường hợp phép gán thực để gán đối tượng Fraction cho theSum ... tử (>) theocặp Cũng toán tử (>=) tương ứng với toán tử (
... hình học như: điểm, đoạn thẳng, đường tròn, hình chữ nhật, hình vuông, tam giác, hình bình hành, hình thoi Mỗi lớp có thuộc tính riêng để xác định hình vẽ biểu diễn đoạn thẳng cóđiểm đầu, điểm ... biểu diễn đoạn thẳng cóđiểm đầu, điểm cuối Mỗi lớp thực thi phương thức Draw() phủ Draw() lớp sở gốc hình mà dẫn xuất Hãy xây dựng lớp sở lớp thực thi đa hình với phương thức Draw() Sau tạo lớp ... hỏi 5: Cóthể kế thừa từ lớp sở viết ngôn ngữ khác ngôn ngữ C#? Trả lời 5: Được, đặc tính NET lớp kế thừa từ lớp viết từ ngôn ngữ khác Do vậy, C# ta kế thừa lớp viết từ ngôn ngữ khác NET Và ngôn...
... Unboxing phải thực tường minh Việc đưa giá trị vào đối tượng thực cách ngầm định Vàthực ngược lại, unboxing, tức đưa từ đối tượng giá trị phải thực cách tường minh Chúng ta phải thiết lập theo hai ... Hình 14 5 Ngôn Ngữ Lập Trình C# Phải chắn đối tượng boxing kiểu giá trị đưa Sao chép giá trị từ thể hay đối tượng vào biến kịểu giá trị Heap Stack i 12 3 int i = 12 3; i o 12 3 boxed Int 12 3 ... int i = 12 3; i boxed o 12 3 object o=i; Int 12 3 Hình 5.5: Boxing số nguyên Boxing thực ngầm định đặt kiểu giá trị vào tham chiếu chờ đợi giá trị đưa vào đối tượng cách tự động ngầm định Ví dụ,...
... lớp Window nên thực thi phương thức DrawWindow() cho riêng Tuy nhiên điều không thực đòi hỏi phải thực cách bắt buộc Để yêu cầu lớp (lớp dẫn xuất) phải thực thi phương thức lớp sở, phải thiết ... không thực thi phương thức trừu tượng lớp sở lớp dẫn xuất lớp trừu tượng, ta tạo thể lớp Phương thức trừu tượng thiết lập cách thêm từ khóa abstract vào đầu phần định nghĩa phương thức, cú pháp thực ... thức trừu tượng thực thi Phương thức đơn giản tạo tên phương thức ký hiệu phương thức, phương thứcthực thi lớp dẫn xuất Những lớp trừu tượng thiết lập sở cho lớp dẫn xuất, việc tạo thể hay đối tượng...
... ảo lớp sởthực thi việc phủ phương thức ỏ lớp dẫn xuất Khi ta gọi phương thức DrawWindow mảng, trình biên dịch dò xác kiểu liệu thực thi mảng có ba kiểu thực thi Window, ListBox, Button Và trình ... ListBox vào vị trí đối tượng Window mảng Và tương tự ta đặt đối tượng Button vào vị trí mảng đối tượng Window, Button Window Window[] winArray = new Window[3]; winArray[0] = new Window( 1, ); winArray [1] ... lb.DrawWindow(); b.DrawWindow(); Đoạn chương trình thực công việc yêu cầu chúng ta, đối tượng thực công việc tô vẽ Tuy nhiên, lúc chưa có đa hình thực thi Mọi chuyện bình thường ta muốn tạo mảng...
... chức đối tượng, khởi điểm để hiểu cách quan hệ đối tượng với đối tượng khác Sự kế thừa Trong ngôn ngữ C#, quan hệ đặc biệt hóa thực thi cách sử dụng kế thừa Đây cách để thực thi đặc biệt hóa, ... thành viên lớp sở, bao gồm tất phương thức biến thành viên lớp sở Lớp dẫn xuất tự thực thi phiên phương thức lớp sở Lớp dẫn xuất tạo phương thức việc đánh dấu với từ khóa new Ví dụ 5 .1 sau minh họa ... Drawing Window at: 5, 10 Drawing Window at: 20, 10 ListBox write: Hello world! Ví dụ 5 .1 bắt đầu với việc khai báo lớp sở tên Window Lớp thực thi phương thức...
... Boxing thực ngầm định Unboxing phải thực tường minh Các lớp lồng Câu hỏi & tập Trong chương trước trình bày cách tạo kiểu liệu việc xây dựng lớp đối tượng Tiếp theo chương đưa sâu vào mối quan ... lớp thảo luận phần cuối chương Đặc biệt hóa tổng quát hóa Lớp thể lớp tức đối tượng không tồn khối, chúng tồn mạng lưới phụ thuộc quan hệ lẫn Ví dụ người xã hội động vật sống giới cóquan hệ loài ... quan hệ loài với Quan hệ (is-a) đặc biệt hóa Khi nói mèo loại động vật có vú, có nghĩa nói mèo trường hợp đặc biệt loại động vật có vú Nó có tất đặc tính động vật có vú (như sinh con, có sữa...
... static void Main() { Location loc1; // gán cho biến thành viên loc1.xVal = 10 0; loc1.yVal = 250; // sử dụng thuộc tính loc1.x = 300; loc1.y = 400; Console.WriteLine( loc1 ); } Hãy cẩn thận với việc ... void Main() { Location loc1; loc1.xVal = 10 0; //loc1.yVal = 250; Console.WriteLine( loc1 ); } Chúng ta nhận lỗi biên dịch sau: Use of unassigned local variable ‘loc1’ Một mà gán tất giá trị cấu ... thành viên lưu tọa độ x, y public int xVal; public int yVal; } public class Tester { static void Main() { Location loc1; loc1.xVal = 10 0; loc1.yVal = 250; Console.WriteLine(“loc1”); } } ...
... [thành viên cấu trúc] 16 5 Cấu Trúc Ngôn Ngữ Lập Trình C# } Ví dụ 7 .1 sau minh họa cách tạo cấu trúc Kiểu Location thểđiểm không gian hai chiều Lưu ý cấu trúc Location khai báo xác thực khai báo với ... loc.x = 50; loc.y = 10 0; Console.WriteLine(“Loc1 location: {0}”, loc); } static void Main() { Location loc1 = new Location( 200, 300); Console.WriteLine(“Loc1 location: {0}”, loc1); Tester t = new ... Ngôn Ngữ Lập Trình C# Câu hỏi 1: Khi sử dụng toán tử chuyển đổi? Thế chuyển đổi tường minh chuyển đổi ngầm định? Câu hỏi 2: Cóthể tạo ký toán tử riêng ta thực thi nạp chồng toán tử hay không?...
... 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 ... trị 16 /15 kết số nguyên trả Một số phép chuyển đổi tốt cách sử dụng làm tròn số Tiếp theo sau toán tử so sánh (==) toán tử so sánh không (!=) Chúng ta nên nhớ thực thi toán tử so sánh phải thực ... định thực boxing số nguyên numerator sau gọi phương thức ToString(), trả chuỗi thể giá trị số nguyên numerator Sau ta nối chuỗi với “/” cuối chuỗi thể giá trị mẫu số Với lớp Fraction tạo ra, thực...
... trực quan hành động lớp mà xây dựng giống lớp xây dựng sẵn Tuy nhiên, việc nạp chồng toán tử làm cho mã nguồn phức tạp cách khó quảnlý phá 15 4 Nạp Chồng Toán Tử Ngôn Ngữ Lập Trình C# vỡ cách thể ... secondFraction trình biên dịch chuyển biểu thức vào: Fraction.operator+(firstFraction, secondFraction) Kết sau thực đối tượng Fraction trả về, trường hợp phép gán thực để gán đối tượng Fraction cho theSum ... tử (>) theocặp Cũng toán tử (>=) tương ứng với toán tử (
... hình học như: điểm, đoạn thẳng, đường tròn, hình chữ nhật, hình vuông, tam giác, hình bình hành, hình thoi Mỗi lớp có thuộc tính riêng để xác định hình vẽ biểu diễn đoạn thẳng cóđiểm đầu, điểm ... biểu diễn đoạn thẳng cóđiểm đầu, điểm cuối Mỗi lớp thực thi phương thức Draw() phủ Draw() lớp sở gốc hình mà dẫn xuất Hãy xây dựng lớp sở lớp thực thi đa hình với phương thức Draw() Sau tạo lớp ... hỏi 5: Cóthể kế thừa từ lớp sở viết ngôn ngữ khác ngôn ngữ C#? Trả lời 5: Được, đặc tính NET lớp kế thừa từ lớp viết từ ngôn ngữ khác Do vậy, C# ta kế thừa lớp viết từ ngôn ngữ khác NET Và ngôn...
... Unboxing phải thực tường minh Việc đưa giá trị vào đối tượng thực cách ngầm định Vàthực ngược lại, unboxing, tức đưa từ đối tượng giá trị phải thực cách tường minh Chúng ta phải thiết lập theo hai ... int i = 12 3; i boxed o 12 3 object o=i; Int 12 3 Hình 5.5: Boxing số nguyên Boxing thực ngầm định đặt kiểu giá trị vào tham chiếu chờ đợi giá trị đưa vào đối tượng cách tự động ngầm định Ví dụ, ... sau: 14 5 Kế Thừa – Đa Hình Ngôn Ngữ Lập Trình C# Phải chắn đối tượng boxing kiểu giá trị đưa Sao chép giá trị từ thể hay đối tượng vào biến kịểu giá trị Heap Stack i 12 3 int i = 12 3; i o 12 3...
... lớp Window nên thực thi phương thức DrawWindow() cho riêng Tuy nhiên điều không thực đòi hỏi phải thực cách bắt buộc Để yêu cầu lớp (lớp dẫn xuất) phải thực thi phương thức lớp sở, phải thiết ... không thực thi phương thức trừu tượng lớp sở lớp dẫn xuất lớp trừu tượng, ta tạo thể lớp Phương thức trừu tượng thiết lập cách thêm từ khóa abstract vào đầu phần định nghĩa phương thức, cú pháp thực ... thức trừu tượng thực thi Phương thức đơn giản tạo tên phương thức ký hiệu phương thức, phương thứcthực thi lớp dẫn xuất Những lớp trừu tượng thiết lập sở cho lớp dẫn xuất, việc tạo thể hay đối tượng...
... ảo lớp sởthực thi việc phủ phương thức ỏ lớp dẫn xuất Khi ta gọi phương thức DrawWindow mảng, trình biên dịch dò xác kiểu liệu thực thi mảng có ba kiểu thực thi Window, ListBox, Button Và trình ... ListBox vào vị trí đối tượng Window mảng Và tương tự ta đặt đối tượng Button vào vị trí mảng đối tượng Window, Button Window Window[] winArray = new Window[3]; winArray[0] = new Window( 1, ); winArray [1] ... lb.DrawWindow(); b.DrawWindow(); Đoạn chương trình thực công việc yêu cầu chúng ta, đối tượng thực công việc tô vẽ Tuy nhiên, lúc chưa có đa hình thực thi Mọi chuyện bình thường ta muốn tạo mảng...