Tài liệu C Fast Food

16 670 2
Tài liệu C Fast Food

Đang tải... (xem toàn văn)

Tài liệu hạn chế xem trước, để xem đầy đủ mời bạn chọn Tải xuống

Thông tin tài liệu

Tài liệu C Fast Food

C# Fast Food http://hoclaptrinh.vn/C-C++-Visual-C/C-Fast-Food/In.html C# Fast Food Thứ ba, 19 Tháng 2008 05:39 Trần Phạm Tùng C - C++ - Visual C# Bài viết dành cho bạn thông thạo C++ muốn tiếp cận C# cách nhanh chóng Tuy nhiên, bạn bắt đầu học C# xem tóm tắt C# nhằm định hướng tốt việc học ngôn ngữ Giới thiệu C# ngôn ngữ mang đặc điểm C++, có phong cách lập trình Java có mơ hình ứng dụng Basic Nếu biết C++ bạn khơng để tìm hiểu cú pháp C# Cịn bạn quen thuộc với Java lợi khác học C# Cấu trúc chương trình Java, khái niệm gói (package), garbage collection … chắn giúp bạn học C# nhanh Trong viết này, nói cấu trúc C#, xem bạn biết C++ Bài viết nói cấu trúc đặc điểm ngôn ngữ C#, minh họa ví dụ ngắn gọn dễ hiểu để bạn nhìn vào ví dụ, bạn hiểu rõ khái niệm Trong viết , bàn chủ đề sau: ·Cấu trúc chương trình ·Namespaces ·Kiểu liệu ·Biến ·Tốn tử biểu thức ·Kiểu liệt kê ·Câu lệnh ·Class Struct ·Modifier ·Các thuộc tính (Property) ·Interface ·Các thơng số hàm ·Mảng (array) ·Indexer ·Boxing Unboxing ·Delegate ·Thừa kế tính đa hình Chúng ta khơng bàn vấn đề như: C# thông dụng hay C++ thông dụng hơn, khái niệm garbage collection, threading, xử lý file … chuyển kiểu liệu, thư viện Net Cấu trúc chương trình Cũng C++, C# thuộc dạng case – sensitive (phân biệt chữ hoa chữ thường) Dấu chấm phẩy (;) ký hiệu ngăn cách phát biểu Khơng C++, C# khơng có phân chia phần khai báo (header) phần thực (cpp) Mọi đoạn mã (khai báo class thực) đặt file có phần mở rộng cs Bây làm quen với chương trình C#, chương trình Hello world: using System; namespace MyNameSpace { class HelloWorld { static void Main(string[] args) { Console.WriteLine (“Hello World”); } } } Trong C#, tất câu lệnh, phương thức… “gói” class, tất class “gói” namespace (giống file folder) Cũng C++, có chương trình chứa điểm nhập cho chương of 16 9/15/2008 5:12 PM C# Fast Food http://hoclaptrinh.vn/C-C++-Visual-C/C-Fast-Food/In.html trình bạn Chương trình C++ bắt đầu “main”, chương trình C# bắt đầu với “Main” Khơng cần đặt dấu chấm phẩy sau khối class hay sau định nghĩa struct Đó quy định C++, C# khơng cần Namespaces Mỗi class gói lại namespace Thật ra, namespaces khái niệm C++, C# dùng namespaces thường xuyên Các bạn truy xuất class namespaces cách dùng dấu chấm (.) MyNameSpace namespace chương trình Hello world Bây viết lại chương trình HelloWorld cách truy xuất lớp HelloWorld từ lớp khác namespaces khác: using System; namespace AnotherNameSpace { class AnotherClass { public void Func() { Console.WriteLine (“Hello World”); } } } Bây từ lớp HelloWorld, bạn truy xuất nó: using System; using AnotherNameSpace; namespace MyNameSpace { class HelloWorld { static void Main(string[] args) { AnotherClass obj = new AnotherClass(); obj.Func(); } } } Trong thư viện Net, System namespace cấp cao namespace Trong C#, cách mặc định tồn namespace toàn cục, class định nghĩa bên namespace lưu trực tiếp namespace tồn cục bạn truy xuất lớp mà khơng cần qualifier (bổ từ) Bạn định nghĩa namespace lồng Using Chỉ thị #include C++ thay từ khóa using, theo sau tên namespace, chẳng hạn “using System” System namespace chứa tất namespace khác tất lớp định nghĩa namespace Lớp cho đối tượng Object namespace System of 16 9/15/2008 5:12 PM C# Fast Food http://hoclaptrinh.vn/C-C++-Visual-C/C-Fast-Food/In.html Biến Các biến C# hầu hết giống C++, ngoại trừ khác biệt sau: · Biến C# cần phải khởi tạo trước bạn truy xuất nó, khơng bạn bị báo lỗi biên dịch Do đó, phải nhớ truy xuất biến chưa khởi tạo · Bạn truy xuất trỏ không trỏ vào đâu C# · Một biểu thức gọi phần tử mảng (array) mà số vượt khỏi kích thước mảng · Khơng có khái niệm biến tồn cục hay hàm toàn cục C# khái niệm tồn cục biểu diễn thơng qua hàm biến static -Kiểu liệu Tất kiểu liệu C# định nghĩa lớp Object Có hai loại kiểu liệu: *Kiểu liệu (dựng sẵn) *Kiểu liệu người dùng định nghĩa Dưới bảng liệt kê kiểu liệu định sẵn trong C#: Kiểu Kích thước Mơ tả Byte Sbyte unsigned byte signed byte Short Ushort signed short unsigned short Int Uint 4 Long Ulong 8 Float Double signed integer unsigned integer signed long unsigned long floating point double precision Decimal fixed precision String unicode string Char unicode char Bool true, false boolean Ghi chú: Kích thước kiểu liệu C++ C# không giống nhau, ví dụ kiểu long C++ byte , C# byte Kiểu bool string khác nhau, kiểu bool C# chấp nhận giá trị true hay false không chấp nhận giá trị integer Kiểu liệu người dùng định nghĩa bao gồm: 1.Class 2.Struct 3.Interface Nếu phân chia kiểu liệu theo cấp phát nhớ ta chia làm hai loại: 1.Kiểu giá trị 2.Kiểu tham khảo Kiểu giá trị Kiểu giá trị liệu cấp phát nhớ stack Các loại liệu bao gồm: ·Tất kiểu liệu dựng sẵn ngoại trừ kiểu string ·Struct ·Kiểu liệt kê Kiểu tham khảo Kiểu tham khảo cấp phát nhớ heap trở thành rác chúng không sử dụng Để khai báo kiểu liệu này, ta dùng từ khóa new, khơng C++, khơng có từ khóa delete Trong C#, chúng tự động gom lại “ phận thu thập rác” (garbage collector) Kiểu tham khảo bao gồm: ·Class ·Interface ·Kiểu tập hợp mảng ·String Kiểu liệt kê (Enumeration) Kiểu liệt kê C# hồn tồn giống C++, chúng định nghĩa thơng qua từ khóa enum Ví dụ như: enum Weekdays of 16 9/15/2008 5:12 PM C# Fast Food http://hoclaptrinh.vn/C-C++-Visual-C/C-Fast-Food/In.html { Saturday, Sunday, Monday Tuesday, Wednesday, Thursday, Friday } Class Struct Class Struct tương tự C++, ngoại trừ khác cấp phát nhớ Những đối tượng class cấp phát nhớ heap tạo cách dùng new, struct cấp phát nhớ stack Struct C# kiểu liệu nhẹ nhanh Do kiểu liệu nặng bạn nên khai báo class Bây quan sát ví dụ sau: struct Date { int day; int month; int year; } class Date { int day; int month; int year; string weekday; string monthName; public int GetDay() { return day; } public int GetMonth() { return month; } public int GetYear() { return year; } public void SetDay(int Day) { day = Day ; } public void SetMonth(int Month) { month = Month; } public void SetYear(int Year) { year = Year; } public bool IsLeapYear() { return (year/4 == 0); of 16 9/15/2008 5:12 PM C# Fast Food http://hoclaptrinh.vn/C-C++-Visual-C/C-Fast-Food/In.html } public void SetDate (int day, int month, int year) { } } Các thuộc tính Nếu bạn quen thuộc với hướng đối tượng C++, bạn hẳn phải có chút khái niệm thuộc tính (properties) Các thuộc tính ví dụ class Date day, month year Nếu C++, bạn phải dùng phương thức Get Set C# cung cấp cách thuận tiện hơn, đơn giản trực tiếp để truy xuất thuộc tính Đối với ví dụ ta viết lại sau: using System; class Date { public int Day{ get { return day; } set { day = value; } } int day; public int Month{ get { return month; } set { month = value; } } int month; public int Year{ get { return year; } set { year = value; } } int year; public bool IsLeapYear(int year) { return year%4== ? true:false; } of 16 9/15/2008 5:12 PM C# Fast Food http://hoclaptrinh.vn/C-C++-Visual-C/C-Fast-Food/In.html public void SetDate (int day, int month, int year) { this.day = day; this.month = month; this.year = year; } } Sau cách bạn lấy thiết lập thuộc tính: class User { public static void Main() { Date date = new Date(); date.Day = 27; date.Month = 6; date.Year = 2003; Console.WriteLine(“Date: {0}/{1}/{2}”,date.Day, date.Month, date.Year); } } Bổ từ (Modifier) Trong C++, gặp bổ từ thông dụng public, private protected Sau nói số bổ từ C# Readonly readonly dùng cho liệu thành viên (member) class Dữ liệu readonly đọc chúng khởi tạo trực tiếp hay gán giá trị cho chúng constructor Sự khác liệu readonly const (hằng) khai báo hằng, ta phải khởi tạo giá trị cho cách trực tiếp Hãy nhìn vào ví dụ sau: class MyClass { //trực tiếp const int constInt = 100; //không trực tiếp readonly int myInt = 5; readonly int myInt2; public MyClass() { // không trực tiếp myInt2 = 8; } public Func() { myInt = 7; //không hợp lệ Console.WriteLine(myInt2.ToString()); } } Sealed Sử dụng từ khóa sealed khai báo class không cho phép bạn lấy class từ Do bạn nên sử dung từ khóa sealed cho lớp mà bạn khơng muốn lớp thừa kế chúng sealed class CanNotbeTheParent of 16 9/15/2008 5:12 PM C# Fast Food http://hoclaptrinh.vn/C-C++-Visual-C/C-Fast-Food/In.html { int a = 5; } Unsafe Bạn định nghĩa ngữ cảnh khơng an tồn C# cách dùng từ khóa unsafe Trong ngữ cảnh khơng an tồn, bạn viết đoạn mã khơng an tồn, ví dụ trỏ C++ chẳng hạn Chúng ta xem xét ví dụ sau: public unsafe MyFunction( int * pInt, double* pDouble) { int* pAnotherInt = new int; *pAnotherInt = 10; pInt = pAnotherInt; *pDouble = 8.9; } Interface Nếu bạn có khái niệm COM, bạn dễ dàng hiểu nội dung phần Một interface lớp trừu tượng bản, chứa ký hiệu hàm, thực hàm cung cấp lớp Trong C#, bạn định nghĩa class interface thơng qua từ khóa interface .NET có tảng từ nhiều interface Trong C# bạn khơng thể dùng nhiều lớp thừa kế, điều mà C++ cho phép, thật chất đa thừa kế thực thông qua interface Những lớp bạn thực đa interface using System; interface myDrawing { int originx { get; set; } int originy { get; set; } void Draw(object shape); } class Shape: myDrawing { int OriX; int OriY; public int originx { get{ return OriX; } set{ of 16 9/15/2008 5:12 PM C# Fast Food http://hoclaptrinh.vn/C-C++-Visual-C/C-Fast-Food/In.html OriX = value; } } public int originy { get{ return OriY; } set{ OriY = value; } } public void Draw(object shape) { } public void MoveShape(int newX, int newY) { } } -Mảng Mảng C# có nhiều tính vượt trội so với C++ Mảng cấp phát nhớ heap truyền tham khảo Bạn khơng thể truy xuất phần tử vượt giới hạn mảng (có số lớn số phần tử mảng) Do C# khắc phục lỗi Ngồi C# cung cấp số hàm trợ giúp để xử lý phần tử mảng Ta thấy rõ khác cú pháp mảng C++ C# là: ·Dấu ngoặc vuông đặt sau tên kiểu sau tên biến ·Bạn tạo vùng nhớ cho phần tử mảng cách dùng từ khóa new Ngồi C# hỗ trợ việc thực mảng chiều (single dimensional), đa chiều (multi dimensional) jagged array (mảng mảng) Ví dụ như: // mảng chiều đơn giản int[] array = new int[10]; for (int i = 0;i < array.Length; i++) array[i] = i; // mảng hai chiều int[,] array2 = new int[5,10]; array2[1,2] = 5; // mảng chiều int[,,] array3 = new int[5,10,5]; array3[0,2,4] = 9; // mảng mảng int[][] arrayOfarray = = new int[2]; arrayOfarray[0] = new int[4]; arrayOfarray[0] = new int[] {1,2,15}; Indexer Indexer dùng để viết phương thức truy xuất trực tiếp phần tử từ tập hợp cách dùng dấu [ ], mảng Việc bạn cần làm rõ số để truy xuất phần tử Cú pháp indexer giống thuộc tính class, ngoại trừ chúng cần thơng số nhập, số phần tử cần truy xuất Bây tiếp tục tham khảo ví dụ cho vấn đề Trong ví dụ sau bạn bắt gặp lớp CollectionBase, lớp thư viện dùng để tạo tập hợp Danh sách (list) protected member lớp CollectionBase, of 16 9/15/2008 5:12 PM C# Fast Food http://hoclaptrinh.vn/C-C++-Visual-C/C-Fast-Food/In.html lưu trữ tập hợp danh sách class Shapes: CollectionBase { public void add(Shape shp) { List.Add(shp); } //indexer public Shape this[int index] { get { return (Shape) List[index]; } set { List[index] = value ; } } } Boxing/Unboxing Boxing khái niệm C# Như đề cập trên, kiểu liệu, dựng sẵn hay người dùng định nghĩa, lấy từ lớp Object namespace System Do việc đóng gói kiểu hay nguyên thủy vào class Object gọi boxing, thao tác ngược lại gọi unboxing Ví dụ như: class Test { static void Main() { int myInt = 12; // boxing object obj = myInt ; // unboxing int myInt2 = (int) obj; } } Ví dụ cho ta thấy hai thao tác boxing unboxing Một giá trị int chuyển đổi thành đối tượng chuyển đổi trở lại thành int Khi kiểu liệu biến cần chuyển thành kiểu truyền tham khảo, object box tạo để chứa giá trị, giá trị lưu vào box Unboxing trình ngược lại Khi object box trả lại thành kiểu nguyên thủy , giá trị chuyển từ box sang ô nhớ lưu trữ ban đầu -Thông số hàm Trong C# có loại thơng số: 1.Thơng số in/ truyền trị 2.Thông số in– out/truyền tham khảo 3.Thông số out Nếu bạn nắm rõ COM interface kiểu thơng số nó, bạn dễ dàng hiểu kiểu thông số C# Thông số in/ truyền trị Khái niệm thông số truyền trị tương tự C++ Giá trị truyền chép vào ô nhớ truyền vào hàm Ví dụ: of 16 9/15/2008 5:12 PM C# Fast Food http://hoclaptrinh.vn/C-C++-Visual-C/C-Fast-Food/In.html SetDay(5); void SetDay(int day) { } -Thông số in – out/truyềnbằng tham khảo Thông số truyền tham khảo C++ truyền thơng qua trỏ hay tốn tử & Trong C#, thơng số truyền tham khảo cịn gọi thơng số in – out, bạn truyền địa tham khảo ô nhớ, bạn truyền giá trị nhập lấy giá trị xuất từ hàm Bạn khơng thể truyền thông số chưa khởi tạo vào hàm C# dùng từ khóa ref để thơng số truyền tham khảo Bạn dùng từ khóa ref cho đối số truyền vào hàm có thơng số truyền tham khảo Ví dụ: int a= 5; FunctionA(ref a); Console.WriteLine(a); void FunctionA(ref int Val) { int x= Val; Val = x* 4; } Thông số out Là thông số trả giá trị kết hàm, khơng địi hỏi giá trị nhập C# dùng từ khóa out cho loại tham số int Val; GetNodeValue(Val); bool GetNodeValue(out int Val) { Val = value; return true; } -Số lượng thông số mảng Để truyền thông số mảng C#, người ta dùng từ khóa params Chỉ có đối số kiểu mảng Bạn truyền phần tử đối số mảng Tốt nhất, ta xem ví dụ sau: void Func(params int[] array) { Console.WriteLine(“number of elements {0}”, array.Length); } Func(); Func(5); Func(7,9); Func(new int[] {3,8,10}); int[] array = new int[8] {1,3,4,5,5,6,7,5}; Func(array); -Toán tử biểu thức Hầu hết tốn tử C# hồn tồn giống C++, biểu thức Tuy nhiên C# bổ sung thêm 10 of 16 9/15/2008 5:12 PM C# Fast Food http://hoclaptrinh.vn/C-C++-Visual-C/C-Fast-Food/In.html số tốn tử hữu ích Chúng ta xem xét vài tốn tử số -Tốn tử is Toán tử dùng để kiểm tra xem kiểu tốn hạng có tương đương hay khơng Toán tử is thường sử dụng kịch đa ngữ cảnh Tốn tử có hai tốn hạng kết trả có kiểu bool Chúng ta xem ví dụ sau: void function(object param) { if(param is ClassA) // something else if(param is MyStruct) //something } } -Toán tử as Toán tử as kiểm tra xem kiểu tốn hạng có khả đổi hay khơng, có kết trả đối tượng chuyển đổi hay box Nếu đối tượng không chuyển đổi hay box được, kết trả null Chúng ta xem ví dụ sau để hiểu rõ khái niệm này: Shape shp = new Shape(); //kết null, không chuyển đổi //kiểu Vehicle veh = shp as Vehicle; Circle cir = new Circle(); Shape shp = cir; //sẽ chuyển đổi Circle cir2 = shp as Circle; object[] objects = new object[2]; objects[0] = “Aisha”; object[1] = new Shape(); string str; for(int i=0; i&< objects.Length; i++) { str = objects[i] as string; if(str == null) Console.WriteLine(“can not be converted”); else Console.WriteLine(“{0}”,str); } Câu lệnh Đa số câu lệnh C# tương tự C++, ngồi cịn có số câu lệnh bổ sung có vài sửa đổi số câu lệnh cũ Sau số câu lệnh mới: foreach: dùng cho việc thực vòng lặp cho tập hợp mảng… Ví dụ: foreach (string s in array) Console.WriteLine(s); lock: dùng để bao đoạn code thành section checked/unchecked: dùng để kiểm tra tràn tốn tử có đối số số Ví dụ như: int x = Int32.MaxValue; x++; 11 of 16 9/15/2008 5:12 PM C# Fast Food http://hoclaptrinh.vn/C-C++-Visual-C/C-Fast-Food/In.html { x++; } unchecked { x++; } } -Switch Trong C#, câu lệnh switch thay đổi sau: 1.Sau thực thi câu lệnh case, chương trình khơng nhảy đến câu lệnh case Ví dụ: int var = 100; switch (var) { case 100: Console.WriteLine(“”); // không dùng break case 200: Console.WriteLine(“”); break; } Trong C++, kết là: Trong C#, bạn nhận thông báo lỗi sau: error CS0163: Control cannot fall through from one case label (‘case 100:’) to another Tuy nhiên, bạn làm sau: switch (var) { case 100: case 200: Console.WriteLine(“100 or 200”); break; } 2.Bạn dùng giá trị case Ví dụ như: const string WeekEnd = “Sunday”; const string WeekDay1 = “Monday”; string WeekDay = Console.ReadLine(); switch (WeekDay ) { case WeekEnd: Console.WriteLine(“It’s weekend!!”); break; case WeekDay1: 12 of 16 9/15/2008 5:12 PM C# Fast Food http://hoclaptrinh.vn/C-C++-Visual-C/C-Fast-Food/In.html Console.WriteLine(“It’s Monday”); break; } Delegate Delegate cho phép lưu tham khảo hàm vào biến Trong C++, việc giống dùng lưu trỏ hàm hay dùng typedef Ví dụ: delegate int Operation(int val1, int val2); public int Add(int val1, int val2) { return val1 + val2; } public int Subtract (int val1, int val2) { return val1- val2; } public void Perform() { Operation Oper; Console.WriteLine(“Enter + or - “); string optor = Console.ReadLine(); Console.WriteLine(“Enter operands”); string opnd1 = Console.ReadLine(); string opnd2 = Console.ReadLine(); int val1 = Convert.ToInt32 (opnd1); int val2 = Convert.ToInt32 (opnd2); if (optor == “+”) Oper = new Operation(Add); else Oper = new Operation(Subtract); Console.WriteLine(“ Result ={0}”, Oper(val1, val2)); } Tính thừa kế tính đa hình Trong C# cho phép thừa kế đơn Nếu bạn muốn thực đa thừa kế, bạn dùng interface Ví dụ: class Parent{ } class Child : Parent Hàm ảo Từ khái niệm hàm ảo đến thực khái niệm đa hình C# nhau, ngoại trừ việc bạn dùng từ khóa override việc thực hàm ảo lớp Lớp cha sử dụng từ khóa virtual Lớp override phương thức ảo sử dụng từ khóa override 13 of 16 9/15/2008 5:12 PM C# Fast Food http://hoclaptrinh.vn/C-C++-Visual-C/C-Fast-Food/In.html class Shape { public virtual void Draw() { Console.WriteLine(“Shape.Draw”); } } class Rectangle : Shape { public override void Draw() { Console.WriteLine(“Rectangle.Draw”); } } class Square : Rectangle { public override void Draw() { Console.WriteLine(“Square.Draw”); } } class MainClass { static void Main(string[] args) { Shape[] shp = new Shape[3]; Rectangle rect = new Rectangle(); shp[0] = new Shape(); shp[1] = rect; shp[2] = new Square(); shp[0].Draw(); shp[1].Draw(); shp[2].Draw(); } } Xuất kết sau: Shape.Draw Rectangle.Draw Square.Draw Ẩn lớp cha cách dùng “new” Trong lớp con, bạn định nghĩa hàm mới, ẩn với lớp cha, cách dùng từ khóa new Trong ví dụ đây, sửa đổi ví dụ trên, tơi thay từ khóa override từ khóa new lớp Rectangle class Shape 14 of 16 9/15/2008 5:12 PM C# Fast Food http://hoclaptrinh.vn/C-C++-Visual-C/C-Fast-Food/In.html { public virtual void Draw() { Console.WriteLine(“Shape.Draw”); } } class Rectangle : Shape { public new void Draw() { Console.WriteLine(“Rectangle.Draw”); } } class Square : Rectangle { public new void Draw() { Console.WriteLine(“Square.Draw”); } } class MainClass { static void Main(string[] args) { Console.WriteLine(“Using Polymorphism:”); Shape[] shp = new Shape[3]; Rectangle rect = new Rectangle(); shp[0] = new Shape(); shp[1] = rect; shp[2] = new Square(); shp[0].Draw(); shp[1].Draw(); shp[2].Draw(); Console.WriteLine(“Using without Polymorphism:”); rect.Draw(); Square sqr = new Square(); sqr.Draw(); } } Kết xuất sau: Using Polymorphism Shape.Draw Shape.Draw Shape.Draw Using without Polymorphism: Rectangle.Draw Square.Draw Trong ví dụ trên, phương thức Draw lớp Rectangle khơng phải dạng đa hình phương thức Draw lớp Shape Thay vậy, xem phương thức khác Do đó, để tránh trùng tên lớp cha lớp con, ta 15 of 16 9/15/2008 5:12 PM C# Fast Food http://hoclaptrinh.vn/C-C++-Visual-C/C-Fast-Food/In.html nên dùng từ khóa new Lưu ý: bạn khơng thể dùng hai phương thức tên lớp phương thức dùng từ khóa new, phương thức dùng override hay virtual Do lớp Square, tơi khơng thể override phương thức Draw lớp Shape Gọi member lớp cha Nếu lớp có liệu member tên với liệu lớp cha, để tránh bị trùng tên, liệu hàm member lớp cha truy xuất thơng qua từ khóa base Trong ví dụ sau, xem cách constructor lớp cha gọi liệu member dùng: public Child(int val) :base(val) { myVar = 5; base.myVar; } Hay public Child(int val) { base(val); myVar = ; base.myVar; } Bài viết giới thiệu cách tổng quát ngôn ngữ C# để bạn quen với đặc trưng ngôn ngữ Mặc dù cố gắng đề cập đến hầu hết khái niệm C#, tơi nghĩ nhiều thứ khác cần thêm vào bàn đến (Theo: Trần Phạm Tùng - Báo Học Lập Trình) Nguồn: tincntt.com 16 of 16 9/15/2008 5:12 PM ... 5:12 PM C# Fast Food http://hoclaptrinh.vn /C- C++-Visual -C/ C -Fast- Food/ In.html { x++; } unchecked { x++; } } -Switch Trong C# , c? ?u lệnh switch thay đổi sau: 1.Sau th? ?c thi c? ?u lệnh case, chương... null, không chuyển đổi //kiểu Vehicle veh = shp as Vehicle; Circle cir = new Circle(); Shape shp = cir; //sẽ chuyển đổi Circle cir2 = shp as Circle; object[] objects = new object[2]; objects[0] =... struct Đó quy định C+ +, C# khơng c? ??n Namespaces Mỗi class gói lại namespace Thật ra, namespaces khái niệm C+ +, C# dùng namespaces thường xuyên C? ?c bạn truy xuất class namespaces c? ?ch dùng dấu chấm

Ngày đăng: 16/08/2012, 09:32

Từ khóa liên quan

Tài liệu cùng người dùng

Tài liệu liên quan