C# căn bản
Bài 1: Giới thiệu về ngôn ngữ C#- Hello C#
Bài 2: Các kiểu dữ liệu trong C#. Biến, hằng và cách sử dụng
Bài 3: Kiểu Enumerator
Bài 4: Kiểu mảng và kiểu chuỗi kí tự
Bài 5: Các cấu trúc lệnh trong C#
Bài 6: Toán tử
Bài 7: Xử lý ngoại lệ: Các lệnh throw ,try- catch, finally.
”, loc); } static void Main() { Location loc1 = new Location( 200, 300); Console.WriteLine(“Loc1 location: {0}”, loc1); Tester t = new Tester(); t.myFunc( loc1 ); Console.WriteLine(“Loc1 location: {0}”, loc1); } } Những điểm khác nhau giữa Class và Struct Struct không hỗ trợ thừa kế. Struct được thừa kế từ lớp object nhưng không thể thừa kế từ các lớp khác hay các struct khác. Struct luôn được ngầm định là sealed, nghĩa là không có lớp hay struct nào có thể kế thừa nó. Tuy nhiên struct có thể thực thi nhiều giao diện như class. Struct không có constructor và destructor mặc định. Không cho phép khởi tạo các trường thể hiện ( instance fields) trong struct vì thế đoạn mã sau sẽ không hợp lệ: private int xVal = 20; private int yVal = 50; Sưu tầm và edit bởi Oki@kimur@ 66 Tạo struct: Chúng ta tạo một thể hiện của struct bằng cách sử dụng từ khóa new trong câu lệnh gán, như khi chúng ta tạo một đối tượng của lớp. Như trong ví dụ, lớp Tester tạo một thể hiện của Location như sau: Location loc1 = new Location( 200, 300); Ở đây một thể hiện mới tên là loc1 và nó được truyền hai giá trị là 200 và 300. Struct là một kiểu giá trị và được lưu trữ trên stack. Chúng ta cũng có thể truyền struct vào hàm như các tham số khác. Bài 17: Namespace trong C# Ta có thể hiểu Namespace là một gói những thực thể có thuộc tính và hành vi độc lập với bên ngoài. Những ưu điểm của namespace được liệt kê như sau: Tránh được sự trùng lặp tên giữa các class. Cho phép tổ chức mã nguồn một cách có khoa học và hợp lý. Khai báo một Namespace namespace NamespaceName { // nơi chứa đựng tất cả các class } Trong đó, Namespace: là từ khóa khai báo một NameSpace NamespaceName: là tên của một Namespace Ví dụ namespace CSharpProgram { class Basic Sưu tầm và edit bởi Oki@kimur@ 67 { } class Advance { } } Bài 18: Luyện tập (Phần ngôn ngữ C#) Hãy nhớ lại bài học đầu tiên, bạn được học cách mở một ứng dụng console trong Visual Studio.net và gõ những dòng code đầu tiên “Hello C#”. Giờ đây bạn đã hoàn toàn làm chủ được ngôn ngữ này rồi. Chúng ta hãy cùng điểm lại những kiến thức trọng tâm của toàn khóa học qua bài ôn tập này. I. Nhắc lại những đặc điểm của ngôn ngữ C# C# là một sản phẩm của microsoft, là một ngôn ngữ hướng đối tượng khá thân thiện và mềm dẻo mà bạn có thể sử dụng để xây dựng các ứng dụng destop hay web. C# có sẵn các thư viện với các hàm hỗ trợ mạnh cho việc lập trình. Bạn cần phải nhớ một số nguyên tắc sau: C# là ngôn ngữ phân biệt hoa thường Quy tắc đặt tên trong C# Quy tắc viết chú thích. Cách khai báo các thư viện dùng trong chương trình II. Các kiểu dữ liệu trong c# C# có 2 loại dữ liệu là dữ liệu kiểu value và dữ liệu kiể reference. Kiểu value hầu hết là những kiểu có sẵn còn kiểu reference hầu hết là những kiểu do người dùng định nghĩa. Bảng dưới đây tổng hợp các kiểu dữ liệu được xây dựng sẵn: Kiểu Khai báo object object o = null; string string s = "hello"; sbyte sbyte val = 12; short short val = 12; int int val = 12; long long val1 = 12; long val2 = 34L; byte byte val1 = 12; Sưu tầm và edit bởi Oki@kimur@ 68 ushort ushort val1 = 12; uint uint val1 = 12; uint val2 = 34U; ulong ulong val1 = 12; ulong val2 = 34U; ulong val3 = 56L; ulong val4 = 78UL; float float val = 1.23F; double double val1 = 1.23; double val2 = 4.56D; bool bool val1 = true; bool val2 = false; char char val = 'h'; decimal decimal val = 1.23M; III. Các loại lệnh của C# Bảng sau sẽ tổng hợp lại toàn bộ các loại lệnh của C# Câu lệnh Ví dụ minh họa Câu lệnh đơn và khối lệnh static void Main() { F(); G(); { H(); I(); } } Khai báo nhãn và lệnh goto static void Main(string[] args) { if (args.Length == 0) goto done; Console.WriteLine(args.Length); done: Console.WriteLine("Done"); } Khai báo các hằng khu vực ( Local constan) static void Main() { const float pi = 3.14f; const int r = 123; Console.WriteLine(pi * r * r); } khai báo các biến khu vực (local variable) static void Main() { int a; int b = 2, c = 3; a = 1; Sưu tầm và edit bởi Oki@kimur@ 69 Console.WriteLine(a + b + c); } Các biểu thức lệnh (Expression Statement) static int F(int a, int b) { return a + b; } static void Main() { F(1, 2); // Expression statement } Lệnh If static void Main(string[] args) { if (args.Length == 0) Console.WriteLine("No args"); else Console.WriteLine("Args"); } Lệnh Switch static void Main(string[] args) { switch (args.Length) { case 0: Console.WriteLine("No args"); break; case 1: Console.WriteLine("One arg "); break; default: int n = args.Length; Console.WriteLine("{0} args", n); break; } } Lệnh While static void Main(string[] args) { int i = 0; while (i < args.Length) { Console.WriteLine(args[i]); i++; } } Lệnh Do…While static void Main() { string s; do { s = Console.ReadLine(); } while (s != "Exit"); } Lệnh For static void Main(string[] args) { for (int i = 0; i < args.length; i++) Console.WriteLine(args[i]); } Lệnh foreach static void Main(string[] args) { foreach (string s in args) Sưu tầm và edit bởi Oki@kimur@ 70 Console.WriteLine(s); } Lệnh break static void Main(string[] args) { int i = 0; while (true) { if (i == args.Length) break; Console.WriteLine(args[i++]); } } Lệnh continue static void Main(string[] args) { int i = 0; while (true) { Console.WriteLine(args[i++]); if (i < args.Length) continue; break; } } Lệnh return static int F(int a, int b) { return a + b; } static void Main() { Console.WriteLine(F(1, 2)); return; } Lệnh Throw và try… catch static int F(int a, int b) { if (b == 0) throw new Exception("Divide by zero"); return a / b; } static void Main() { try { Console.WriteLine(F(5, 0)); } catch(Exception e) { Console.WriteLine("Error"); } } Bài học sau sẽ tổng hợp các kiến thức về hướng đối tượng trong C#. Bài 19: Luyện tập- phần hướng đối tượng trong C# Sưu tầm và edit bởi Oki@kimur@ 71 1. Lớp (Class ) và đối tượng (Object) Khái niệm về lớp và đối tượng Lớp là một khái niệm mô tả cho những thực thể có chung tính chất và hành vi có thể nói lớp là một khuôn mẫu cho các đối tượng. Còn đối tượng là những đại diện cho lớp, mọi đối tượng đều có chung tính chất và hành vi mà lớp định nghĩa. Các thành phần của lớp Các thành phần của lớp gồm: Fields, properties và Methods và các thành phần này được phân làm 2 loại là static và instance. Trong đó : Fields là các phần tử dùng để thể hiện các biến trong lớp. Properties là phần tử dùng để truy cập đến đặc điểm của một đối tượng hoặc một class. Properties được định nghĩa bằng 2 phần, phần thứ nhất giống như định nghĩa Fields, phần thứ 2 có thêm 2 phần tử get và set. Methods hay phương thức chính là các “hành vi” được định nghĩa trong class. Nó dùng để thực hiện một công việc nào đó của một đối tượng hay một class. Khi học về method bạn cần đặc biệt lưu ý đến các vấn đề về Methods overloading, Constructor, Destructor và cách truyền tham số cho method. Lớp Abstract class và Sealed class Là 2 lớp đặc biệt của C# trong đó: Abstract class là lớp chứa phương thức Abstract hay phương thức ảo- tức là các phương thức chỉ được khai báo chứ không thực thi hành động nào. Abstract class chỉ được dùng làm lớp cha cho các lớp kế thừa. Sealed class là lớp không bao giờ được kế thừa. Nếu bạn khai báo một lớp dẫn xuất từ một lớp Sealed class thì chương trình sẽ báo lỗi. 2. Struct. Khái niệm về Struct Struct là một kiểu dữ liệu đơn giản do người dùng định nghĩa, có kích thước nhỏ và có thể được dùng thay cho lớp. Struct cũng chứa những thành phần tương tự như lớp. Cách khai báo và sử dụng Sưu tầm và edit bởi Oki@kimur@ 72 [thuộc tính] [bổ sung truy cập] struct [: danh sách giao diện] { [thành viên của cấu trúc] } Phân biệt Struct với Class Struct là kiểu dữ liệu giá trị còn class là kiểu tham chiếu. Struct luôn được mặc định là sealed không hỗ trợ inheritance, constructor và destructor. Nhưng struct cũng có thể thực thi nhiều giao diện như class. 3. Inheritance Khái niệm về Inheritance Inheritance là việc một class có thể kế thừa (sử dụng lại) các thuộc tính và các phương thức được định nghĩa từ một class khác. Khi đó class kế thừa được gọi là lớp dẫn xuất hay lớp con còn lớp được kế thừa là lớp cơ sở hay lớp cha. Khai báo và sử dụng Inhertance. Khai báo lớp B kế thừa lớp A: class A {} class B: A {} 4. Overriding method và Polimorphysm Phân biệt giữa Overriding method và Polimorphysm Overrding methed là một hàm cùng tên cùng kiểu được khai báo trong lớp con và sẽ override hàm trong lớp cha. Polimorphysm không chỉ override hàm trong lớp cha mà nó còn override thông minh. Sự khác biệt quan trọng giữa Overriding method và Polimorphysm là trong Polimorphysm việc quyết định gọi hàm được thực hiện khi chương trình chạy. 5. Interface Giao diện là ràng buộc, giao ước đảm bảo cho các lớp hay các cấu trúc sẽ thực hiện một điều gì đó. Khi một lớp thực thi một giao diện, thì lớp này báo cho các thành phần client biết rằng lớp này có hỗ trợ các phương thức, thuộc tính, sự kiện và các chỉ mục khai báo trong giao diện. Khai báo một giao diện: Sưu tầm và edit bởi Oki@kimur@ 73 [thuộc tính] [phạm vi truy cập] interface [: danh sách cơ sở] { } 6. Namespace Ta có thể hiểu Namespace là một gói những thực thể có thuộc tính và hành vi độc lập với bên ngoài. Khai báo một Namespace namespace NamespaceName { // nơi chứa đựng tất cả các class } Trong đó, Namespace: là từ khóa khai báo một NameSpace. NamespaceName: là tên của một Namespace. Hết Chúc các bạn học tốt ^^!
File đính kèm:
- C# căn bản.pdf