YOMEDIA
ADSENSE
Tài Liệu Học Ngôn Ngữ Lập Trình C#_p1
164
lượt xem 40
download
lượt xem 40
download
Download
Vui lòng tải xuống để xem tài liệu đầy đủ
Tham khảo tài liệu 'tài liệu học ngôn ngữ lập trình c#_p1', công nghệ thông tin, kỹ thuật lập trình phục vụ nhu cầu học tập, nghiên cứu và làm việc hiệu quả
AMBIENT/
Chủ đề:
Bình luận(0) Đăng nhập để gửi bình luận!
Nội dung Text: Tài Liệu Học Ngôn Ngữ Lập Trình C#_p1
- NGÔN NGỮ LẬP TRÌNH C#
- Ngôn Ngữ Lập Trình C# Mục Lục 1. Microsoft .NET............................................................................................... 10 Tình hình trước khi MS.NET ra đời........................................................ 10 Nguồn gốc của .NET................................................................................12 Microsoft .NET........................................................................................ 12 Tổng quan............................................................................................ .... 12 Kiến trúc .NET Framework..................................................................... 13 Common Language Runtime................................................................... 15 Thư viện .NET Framework......................................................................16 Phát triển ứng dụng client........................................................................ 16 Biên dịch và MSIL...................................................................................17 Ngôn ngữ C#............................................................................................18 2. Ngôn ngữ C#.................................................................................................... 20 Tại sao phải sử dụng ngôn ngữ C#...........................................................20 C# là ngôn ngữ đ ơn giản..........................................................................20 C# là ngôn ngữ hiện đại........................................................................... 21 C# là ngôn ngữ hướng đối tượng............................................................. 21 C# là ngôn ngữ mạnh mẽ......................................................................... 22 C# là ngôn ngữ ít từ khóa.........................................................................22 C# là ngôn ngữ module hóa..................................................................... 22 C# sẽ là ngôn ngữ phổ biến......................................................................22 Ngôn ngữ C# với ngôn ngữ khác............................................................. 23 Các bước chuẩn bị cho chương trình....................................................... 24 Chương trình C# đơn giản....................................................................... 25 Phát triển chương trình minh họa.............................................................31 Câu hỏi & b ài tập..................................................................................... 35 3. Nền tảng ngôn ngữ C#.................................................................................. 39 Kiểu dữ liệu..............................................................................................40 Kiểu dữ liệu xây dựng sẵn....................................................................... 41 Chọn kiểu dữ liệu.....................................................................................42 Chuyển đổi kiểu dữ liệu........................................................................... 43 Biến và hằng............................................................................................ 44 Gán giá trị xác định cho biến............................................ ....................... 45 Hằng................................................................................................. ........46 Kiểu liệt kê...............................................................................................47 2
- Ngôn Ngữ Lập Trình C# Kiểu chu ỗi ký tự.......................................................................................50 Định danh.................................................................................................50 Biểu thức.................................................................................................. 50 Khoảng trắng............................................................................................51 Câu lệnh................................................................................................... 51 Phân nhánh không có điều kiện............................................................... 52 Phân nhánh có điều kiện.......................................................................... 53 Câu lệnh lặp............................................................................................. 60 Toán tử.................................................................................................... . 68 Namespace............................................................................................... 76 Các ch ỉ dẫn biên dịch............................................................................... 80 Câu hỏi & b ài tập..................................................................................... 82 4. Xây dựng lớp - Đối tượng............................................................................87 Định nghĩa lớp......................................................................................... 88 Thu ộc tính truy cập.................................................................................. 91 Tham số của phương thức........................................................................92 Tạo đối tượng........................................................ ...................................93 Bộ khởi d ựng............................................................................................93 Khởi tạo biến thành viên..........................................................................96 Bộ khởi d ựng sao chép.............................................................................98 Từ khó a this............................................................................................. 99 Sử dụng các thành viên static...................................................................100 Gọ i phương thức static.............................................................................101 Sử dụng bộ khởi dựng static.................................................................... 101 Sử dụng bộ khởi dựng private..................................................................102 Sử dụng thu ộc tính static..........................................................................102 Hủ y đ ối tượng.......................................................................................... 104 Truyền tham số.........................................................................................107 Nạp chồng phương thức...........................................................................112 Đóng gói dữ liệu với thuộc tính............................................................... 116 Thuộ c tính chỉ đọ c................................................................................... 119 Câu hỏi & b ài tập..................................................................................... 121 5. K ế thừa – Đa hình.......................................................................................... 125 Đặc biệt hó a và tổng qu át hóa..................................................................126 Sự kế thừa................................................................................................ 12 9 Thực thi kế thừa....................................................................................... 129 Gọ i phương thức khởi d ựng của lớp cơ sở...............................................131 Gọ i phương thức của lớp cơ sở................................................................132 3
- Ngôn Ngữ Lập Trình C# Điều khiển truy xu ất.................................................................................132 Đa hình.................................................................................................. ...133 Kiểu đa hình........................................................................................... ..133 Phương thức đ a hình................................................................................ 133 Từ khó a new và o verride......................................................................... 137 Lớp trừu tượng......................................................................................... 139 Gố c củ a tất cả các lớp- lớp Object........................................................... 142 Boxing và Unboxing dữ liệu.................................................................... 144 Boxing dữ liệu ngầm đ ịnh........................................................................144 Unboxing phải thực hiện tường minh...................................................... 145 Các lớp lồng nhau.................................................................................... 147 Câu hỏi & b ài tập..................................................................................... 149 6. Nạp chồng toán tử..........................................................................................153 Sử dụng từ khó a operator.........................................................................153 Hỗ trợ n gôn ngữ .NET khác.....................................................................154 Sử dụng toán tử........................................................................................ 154 Toán tử so sánh b ằng............................................................................... 156 Toán tử chuyển đổi...................................................................................157 Câu hỏi & b ài tập..................................................................................... 163 7. Cấu trúc............................................................................................................. 165 Định nghĩa một cấu trúc...........................................................................165 Tạo cấu trú c..............................................................................................168 Cấu trúc là mộ t kiểu giá trị...................................................................... 168 Gọ i bộ khởi d ựng mặc định..................................................................... 169 Tạo cấu trú c không gọi new.....................................................................170 Câu hỏi & b ài tập..................................................................................... 172 8. Thực thi giao diện.......................................................................................... 176 Thực thi giao diện.................................................................................... 177 Thực thi nhiều giao diện.......................................................................... 180 Mở rộ ng giao diện....................................................................................181 Kết hợp các giao diện...............................................................................181 Truy cập phương th ức giao diện.............................................................. 187 Gán đố i tượng cho giao diện....................................................................187 Toán tử is................................................................................................. 188 Toán tử as....................................................................... ..........................190 Giao diện đố i lập với trừu tượng..............................................................192 Thực thi phủ quyết giao diện................................................................... 193 Thực thi giao diện tường minh.................................................................197 4
- Ngôn Ngữ Lập Trình C# Lựa chọ n thể hiện phương thức giao diện................................................200 Ẩn thành viên...........................................................................................200 Câu hỏi & b ài tập..................................................................................... 207 9. Mảng, chỉ mục, và tập hợp......................................................................... 211 Mảng.................................................................................................. ...... 212 Khai báo mảng......................................................................................... 213 Giá trị mặc đ ịnh....................................................................................... 214 Truy cập các thành phần trong mảng....................................................... 214 Khởi tạo thành phần trong mảng..............................................................216 Sử dụng từ khóa params...........................................................................216 Câu lệnh foreach...................................................................................... 218 Mảng đ a chiều..........................................................................................220 Mảng đa chiều cùng kích thước............................................................... 220 Mảng đa chiều có kích thước khác nhau..................................................224 Chuyển đ ổi mảng..................................................................................... 227 Bộ chỉ mục............................................................................................... 232 Bộ chỉ mụ c và p hép gán...........................................................................236 Sử dụng kiểu chỉ số khác......................................................................... 237 Giao diện tập h ợp..................................................................................... 241 Giao diện IEnumerable...................................................................... 242 Giao diện ICollection.........................................................................246 Danh sách m ảng....................................................................................... 247 Thực thi IComparable........................................................................ 251 Thực thi IComparer........................................................................... 254 Hàng đợi...................................................................................................259 Ngăn xếp.................................................................................................. 262 Kiểu từ điển..............................................................................................265 Hastables.......................................................................................... 266 Giao diện IDictionary.........................................................................267 Tập khó a và tập giá trị.....................................................................269 Giao diện IDictionaryEnumerator....................................................... 270 Câu hỏi & b ài tập..................................................................................... 271 10. Xử lý chuỗi.................................................................................................... . 275 Lớp đối tượng string................................................................................ 276 Tạo một chuỗ i.......................................................................................... 276 Tạo một chuỗ i dùng phương thức ToString.............................................277 Thao tác trên chuỗi...................................................................................278 Tìm mộ t chuỗi con................................................................................... 285 5
- Ngôn Ngữ Lập Trình C# Chia chu ỗi................................................................................................ 286 Thao tác trên chuỗi dùng StringBuilder...................................................288 Các biểu thức quy tắc............................................................................. ..290 Sử dụng biểu thức quy tắc qua lớp Regex................................................291 Sử dụng Regex đ ể tìm tập hợp.................................................................294 Sử dụng Regex đ ể gom nhóm.................................................................. 295 Sử dụng CaptureCollection......................................................................298 Câu hỏi & b ài tập..................................................................................... 301 11. Cơ chế ủy quyền và sự kiện......................................................................303 Ủy quyền.................................................................................................. 304 Sử dụng ủ y quyền xác nhận phương thức lúc thực thi.............................304 Ủy quyền tĩnh...........................................................................................314 Dù ng ủ y quyền như thuộc tính.................................................................315 Thiết lập thứ tự thi hành với mảng ủ y quyền........................................... 316 Multicasting............................................................................................. 320 Sự kiện......................................................................... ............................ 324 Cơ chế publishing- subscribing................................................................324 Sự kiện và ủ y quyền................................................................................. 325 Câu hỏi & b ài tập..................................................................................... 333 12. Các lớp cơ sở .NET......................................................................................335 Lớp đối tượng trong .NET Framework.................................................... 335 Lớp Timer................................................................................................ 337 Lớp về thư mục và hệ thống.................................................................... 340 Lớp Math..................................................................................................342 Lớp thao tác tập tin.................................................................................. 345 Làm việc với tập tin dữ liệu..................................................................... 351 Câu hỏi & b ài tập..................................................................................... 362 13. Xử lý ngoại lệ.................................................................................................364 Phát sinh và bắt giữ ngoại lệ.................................................................... 365 Câu lệnh throw.........................................................................................365 Câu lệnh catch..........................................................................................367 Câu lệnh finally........................................................................................373 Nh ững đố i tượng ngoại lệ........................................................................ 375 Tạo riêng các ngoại lệ.............................................................................. 378 Phát sinh lại ngo ại lệ................................................................................ 381 Câu hỏi & b ài tập..................................................................................... 385 6
- Ngôn Ngữ Lập Trình C# Tham Khảo Giáo trình “Ngôn ngữ Lập trình C#” được biên dịch và tổ ng hợp từ: Programming C#, Jesse Liberty, O’Reilly. C# in 21 Days, Bradley L.Jones, SAMS. Windows Forms Programming with C# , Erik Brown, Manning. MSDN Library – April 2002. Quy ước Giáo trình sử dụng mộ t số quy ước như sau: Các thuật ngữ được giới thiệu lần đ ầu tiên sẽ in nghiêng. Mã nguồ n củ a chương trình minh họa dùng font Verdana -10. Các từ khóa của C# dùng font Verdana-10, đậm ho ặc Verdana-10, bình thường. Tên namspace, lớp, đối tượng, phương thức, thu ộc tính, sự kiện... dùng font Verdana- 10. Kết quả của chương trình xuất ra màn hình console dùng font Courier New-10. 7
- Ngôn Ngữ Lập Trình C# Chương 1 MICROSOFT .NET Tình hình trước khi MS.NET ra đời Nguồn gố c của .NET Microsoft .NET Tổ ng quan Kiến trúc .NET Framework Common Language Runtime (CLR) Thư viện .NET Framework Phá t triển ứng dụng client Biên dịch và MSIL Ngôn ngữ C# Tình hình trước khi MS.NET ra đời Trong lĩnh vực công nghệ thô ng tin của thế giới ngày nay, với sự phát triển liên tục và đ a dạng nhất là phần mềm, các hệ đ iều hành, các môi trường phát triển, các ứng dụng liên tụ c ra đời. Tuy nhiên, đô i khi việc phát triển không đồng nhất và nhất là do lợi ích khác nhau của các công ty phần mềm lớn làm ảnh hưở ng đến những người xâ y dựng phần mềm. Cách đây vài năm Java đ ược Sun viết ra, đã có sức mạnh đ áng kể, nó hướng tới việc chạy trên nhiều hệ điều hành khác nhau, độc lập với bộ xử lý (Intel, Risc,…). Đặc biệt là Java rất thích hợp cho việc viết các ứng dụ ng trên Internet. Tuy nhiên, Java lại có hạn chế về mặt tốc độ và trên thực tế vẫn chưa thịnh hành. Mặc dù Sun Corporation và IBM có đ ẩy mạnh Java, nhưng Microsoft đ ã dùng ASP đ ể làm giảm khả năng ảnh hưởng củ a Java. Để lập trình trên Web, lâu nay người ta vẫn dù ng CGI-Perl và gần đ ây nhất là PHP, một ngô n ngữ giống như Perl như ng tố c độ chạy nhanh hơn. Ta có thể triển khai Perl trên Unix/Linux hay MS Windows. Tuy nhiên có nhiều người khô ng thích dùng do bản thân ngôn ngữ hay các qui ước khác thường và Perl khô ng được phát triển thống nhất, các công cụ được xây dựng cho Perl tuy rất mạnh nhưng do nhiều nhóm phát triển và người ta không đảm bảo rằng tương lai củ a nó ngày càng tốt đẹp hơn. 8 Microsoft .NET
- Ngôn Ngữ Lập Trình C# Trong giới phát triển ứng d ụng trên Windows ta có thể viết ứng dụng bằng Visual C++, Delphi hay Visual Basic, đ ây là một số cô ng cụ p hổ b iến và mạnh. Trong đó Visual C++ là một ngôn ngữ rất mạnh và cũ ng rất khó sử dụng. Visual Basic thì đơn giản dễ học, d ễ dù ng nhất nên rất thông dụng. Lý do chính là Visual Basic giúp chúng ta có thể viết chươ ng trình trên Windows d ễ dàng mà không cần thiết phải biết nhiều về cách thức MS Windows ho ạt động, ta chỉ cần biết một số kiến thức căn b ản tố i thiểu về MS Windows là có thể lập trình được. Do đó theo quan điểm của Visual Basic nên nó liên kết với Windows là điều tự nhiên và dễ hiểu, như ng hạn chế là Visual Basic không phải ngôn ngữ hướng đ ối tượng (Object Oriented). Delphi là hậu du ệ củ a Turbo Pascal của Borland. Nó cũ ng giống và tương đối dễ dù ng như Visual Basic. Delphi là một ngôn ngữ hướ ng đối tượng. Các điều khiển dùng trên Form của Delphi đ ều đ ược tự động khở i tạo mã ngu ồn. Tuy nhiên, chức năng khởi đ ộng mã ngu ồn này của Delphi đôi khi gặp rắc rố i khi có sự can thiệp của người dùng vào. Sau này khi công ty Borland bị b án và các chuyên gia xây d ựng nên Delphi đ ã chạy qua b ên Microsoft, và Delphi khô ng còn được phát triển tốt nữa, ngườ i ta khô ng d ám đ ầu tư triển khai phần mềm vào Delphi. Cô ng ty sau này đ ã phát triển dòng sản phẩm Jbuilder (dùng Java) khô ng còn quan tâm đ ến Delphi. Tuy Visual Basic bền hơ n do không cần phải khởi tạo mã nguồ n trong Form khi thiết kế nhưng Visual Basic cũ ng có nhiều khuyết đ iểm : Khô ng hỗ trợ thiết kế hướ ng đ ối t ượng, nhất là khả năng thừa kế (inheritance). Giới hạn về việc chạy nhiều tiểu trình trong một ứng dụng, ví dụ ta không thể d ùng Visual Basic đ ể viết một Service kiểu NT. Khả năng xử lý lỗi rất yếu, khô ng thích hợp trong mô i trường Multi- tier Khó dùng chung với ngôn ngữ khác như C++. Khô ng có User Interface thích hợp cho Internet. Do Visual Basic khô ng thích hợp cho viết các ứng Web Server nên Microsoft tạo ra ASP (Active Server Page). Các trang ASP nà y vừa có tag HTML vừa chứa các đo ạn script (VBScript, JavaScript) nằm lẫn lộn nhau. Khi xử lý mộ t trang ASP, nếu là tag HTML thì sẽ được gởi thẳng qua Browser, cò n các script thì sẽ được chuyển thành các dò ng HTML rồi gởi đi, ngo ại trừ các function hay các sub trong ASP thì vị trí các script khác rất quan trọng. Khi mộ t số chức năng nào được viết tốt người ta d ịch thành ActiveX và đ ưa nó vào Web Server. Tuy nhiên vì lý do bảo mật nên các ISP (Internet Service Provider) làm máy chủ cho Web site thường rất d è đặt khi cài ActiveX lạ trên máy củ a họ . Ngo ài ra việc tháo gỡ các phiên bản củ a ActiveX nà y là cô ng việc rất khó, thường xuyên làm cho Administrator nhức đầu. Những người đ ã từng qu ản lý các version củ a DLL trên Windows đ iều than phiền tại sao phải đ ăng ký các DLL và nhất là chỉ có thể đăng ký một phiên b ản củ a DLL mà thô i. Và từ “DLL Hell” xuất hiện tức là địa ngục DLL… 9 Microsoft .NET
- Ngôn Ngữ Lập Trình C# Sau này đ ể giú p cho việc lập trình ASP nhanh hơn thì công cụ Visual InterDev, mộ t IDE (Integrated Development Environment) ra đời. Visual InterDev tạo ra các Design Time Controls cho việc thiết kế các điều khiển trên web,… Tiếc thay Visual InterDev không b ền vững lắm nên sau một thời gian thì các nhà phát triển đ ã rời bỏ nó . Tóm lại b ản thân củ a ASP hãy còn một số khuyết đ iểm quan trọ ng, nhất là khi chạy trên Internet Information Server với Windows NT 4, ASP khô ng đ áng tin cậ y lắm. Tóm lại trong giới lập trình theo Microsoft thì việc lập trình trên desktop cho đ ến lập trình hệ phân tán hay trên web là khô ng đ ược nhịp nhàng cho lắm. Để chuyển đ ược từ lập trình client hay desktop đ ến lập trình web là mộ t chặng đ ường dài. Nguồn gốc .NET Đầu năm 1998, sau khi hoàn tất phiên b ản Version 4 củ a Internet Information Server (IIS), các đội ngũ lập trình ở Microsoft nhận thấy họ còn rất nhiều sáng kiến để kiện to àn IIS. Họ bắt đ ầu xây d ựng một kiến trúc mới trên nền tảng ý tưởng đó và đ ặt tên là Next Generation Windows Services (NGWS). Sau khi Visual Basic được trình làng vào cuối 1998, d ự án kế tiếp mang tên Visual Studio 7 được xác nhập vào NGWS. Đội ngũ COM+/MTS góp vào một universal runtime cho tất cả ngô n ngữ lập trình chung trong Visual Studio, và tham vọ ng của họ cung cấp cho các ngôn ngữ lập trình của các công ty khác d ùng chung lu ôn. Cô ng việc nà y đ ược xú c tiến một cách hoàn toàn bí mật mãi cho đến hộ i nghị Professional Developers’ Conference ở Orlado vào tháng 7/2000. Đến tháng 11/2000 thì Microsoft đã phát hành b ản Beta 1 của .NET gồm 3 đ ĩa CD. Tính đến lú c nà y thì Microsoft đã làm việc với .NET gần 3 năm rồi, do đó bản Beta 1 này tương đ ối vững chắc. .NET mang dáng d ấp của nhữ ng sáng kiến đã đ ược áp dụ ng trước đây như p-code trong UCSD Pascal cho đến Java Virtual Machine. Có đ iều là Microsoft góp nhặt những sáng kiến của người khác, kết hợp với sáng kiến củ a chính mình đ ể làm nên mộ t sản phẩm ho àn chỉnh từ bên trong lẫn b ên ngo ài. Hiện tại Microsoft đ ã cô ng bố p hiên bản release củ a .NET. Thật sự Microsoft đ ã đặt cược vào .NET vì theo thông tin củ a cô ng ty, đ ã tập trung 80% sức mạnh củ a Microsoft đ ể nghiên cứu và triển khai .NET (bao gồm nhân lực và tài chính ?), tất cả các sản phẩm của Microsoft sẽ đ ược chuyển qua .NET. Microsoft .NET Tổng quan Microsoft .NET gồ m 2 phần chính : Framework và Integrated Development Environment (IDE). Framework cung cấp những gì cần thiết và căn bản, chữ Framework có nghĩa là khung hay khung cảnh trong đó ta dùng những hạ tầng cơ sở theo một qui ước nhất định để công việc đ ược trôi chảy. IDE thì cung cấp một môi trường giú p chúng ta triển khai d ễ dàng, và nhanh chó ng các ứng dụ ng dựa trên nền tảng .NET. Nếu không có IDE chú ng ta cũng có thể 10 Microsoft .NET
- Ngôn Ngữ Lập Trình C# dùng một trình so ạn thảo ví như Notepad hay bất cứ trình so ạn thảo văn b ản nào và sử dụ ng command line đ ể biên dịch và thực thi, tuy nhiên việc nà y mất nhiều thời gian. Tốt nhất là chú ng ta dùng IDE phát triển các ứng d ụng, và cũng là cách d ễ sử dụng nhất. Thành phần Framework là quan trọng nhất .NET là cốt lõi và tinh hoa củ a môi trường, còn IDE chỉ là công cụ để p hát triển dựa trên nền tảng đ ó thô i. Trong .NET to àn bộ các ngôn ngữ C#, Visual C++ hay Visual Basic.NET đ ều dùng cù ng một IDE. Tóm lại Microsoft .NET là nền tảng cho việc xâ y dựng và thực thi các ứng d ụng phân tán thế hệ kế tiếp. Bao gồ m các ứng dụ ng từ client đ ến server và các dịch vụ khác. Mộ t số tính năng củ a Microsoft .NET cho phép những nhà phát triển sử dụ ng như sau: Một mô hì nh lập trình cho phép nhà p hát triển xâ y dựng các ứ ng dụng d ịch vụ web và ứng dụ ng client với Extensible Markup Language (XML). Tập hợ p d ịch vụ XML Web, như Microsoft .NET My Services cho phép nhà p hát triển đơn giản và tích hợp người dù ng kinh nghiệm. Cung cấp các server phụ c vụ bao gồ m: Windows 2000, SQL Server, và BizTalk Server, tất cả điều tích hợp, hoạt độ ng, và quản lý các d ịch vụ XML Web và các ứng dụng. Các phần mềm client như Windows XP và Windows CE giú p người phát triển p hân p hố i sâu và thuyết phục ngườ i dùng kinh nghiệm thô ng qua các dòng thiết b ị. Nhiều công cụ hỗ trợ như Visual Studio .NET, đ ể phát triển các dịch vụ Web XML, ứng dụ ng trên nền Windows hay nền web mộ t cách dể d àng và hiệu quả. Kiến trúc .NET Framework .NET Framework là một platform mới làm đơn giản việc phát triển ứng d ụng trong môi trường phân tán của Internet. .NET Framework được thiết kế đ ầy đ ủ đ ể đáp ứng theo quan điểm sau: Để cung cấp mộ t môi trường lập trình hướng đố i tượng vững chắc, trong đó mã ngu ồn đối tượng được lưu trữ và thực thi một cách cụ c bộ . Thực thi cụ c bộ nhưng đ ược phân tán trên Internet, hoặc thực thi từ xa. Để cung cấp mộ t môi trườ ng thực thi mã nguồn mà tối thiểu đ ược việc đó ng gó i phần mềm và sự tranh chấp về phiên b ản. Để cung cấp mộ t môi trườ ng thực thi mã nguồn mà đảm bảo việc thực thi an toàn mã ngu ồn, bao gồm cả việc mã nguồn đ ược tạo bởi hãng thứ b a hay b ất cứ hãng nào mà tu ân thủ theo kiến trú c .NET. Để cung cấp mộ t môi trường thực thi mã nguồn mà lo ại bỏ được những lỗi thực hiện các script hay môi trường thông d ịch. Để làm cho những người phát triển có kinh nghiệm vững chắc có thể nắm vữ ng nhiều kiểu ứng dụ ng khác nhau. Như là từ nhữ ng ứng dụng trên nền Windows đến những ứng dụ ng d ựa trên web. 11 Microsoft .NET
- Ngôn Ngữ Lập Trình C# Để xây dự ng tất cả các thông tin dựa triên tiêu chu ẩn công nghiệp để đảm bảo rằng mã nguồ n trên .NET có thể tích hợp với bất cứ mã ngu ồn khác. .NET Framework có hai thành phần chính: Common Language Runtime (CLR) và thư viện lớp .NET Framework. CLR là nền tảng của .NET Framework. Chú ng ta có thể hiểu runtime như là mộ t agent quản lý mã nguồ n khi nó đ ược thực thi, cung cấp các dịch vụ cốt lõi như: qu ản lý bộ nhớ, quản lý tiểu trình, và qu ản lý từ xa. Ngoài ra nó cò n thú c đẩy việc sử dụng kiểu an toàn và các hình thứ c khác của việc chính xác mã nguồ n, đảm bảo cho việc thực hiện đ ược b ảo mật và mạnh mẽ. Thật vậ y, khái niệm quản lý mã ngu ồn là nguyên lý nền tảng của runtime. M ã nguồ n mà đích tới runtime thì được biết như là mã ngu ồn được quản lý (managed code). Trong khi đó mã ngu ồn mà không có đích tới runtime thì đ ược biết như mã ngu ồn không được qu ản lý (unmanaged code). Thư viện lớp, mộ t thành phần chính khác củ a .NET Framework là mộ t tập hợp hướng đối tượng của các kiểu dữ liệu được dù ng lại, nó cho phép chú ng ta có thể p hát triển những ứng dụng từ những ứng dụng truyền thống command -line hay nhữ ng ứng dụ ng có giao diện đồ họa (GUI) đến những ứ ng dụng mới nhất được cung cấp bởi ASP.NET, như là Web Form và dịch vụ XML Web. Hình 1.1: Mô tả cá c thành phần trong .NET Framework. 12 Microsoft .NET
- Ngôn Ngữ Lập Trình C# Common Language Runtime (CLR) Như đã đề cập thì CLR thực hiện qu ản lý bộ nhớ, quản lý thực thi tiểu trình, thực thi mã ngu ồn, xác nhận mã ngu ồn an to àn, biên bịch và các d ịch vụ hệ thống khác. Những đ ặc tính trên là nền tảng cơ bản cho những mã ngu ồn được quản lý chạy trên CLR. Do chú trọ ng đến bảo mật, những thành phần đ ược qu ản lý được cấp nhữ ng mức độ quyền hạn khác nhau, phụ thuộc vào nhiều yếu tố nguyên thủ y của chú ng như: liên quan đ ến Internet, hệ thố ng mạng trong nhà má y, hay mộ t máy tính cục bộ. Điều nà y có nghĩa rằng, một thành phần được qu ản lý có thể có hay không có quyền thự c hiện mộ t thao tác truy cập tập tin, thao tác truy cập registry, hay các chức năng nhạy cảm khác. CLR thúc đẩy việc mã nguồ n thực hiện việc truy cập đ ược bảo mật. Ví dụ , người sử dụ ng giới hạn rằng việc thự c thi nhúng vào trong một trang web có thể chạ y được ho ạt hình trên màn hình hay hát mộ t b ản nhạc, nhưng không thể truy cập đ ược dữ liệu riêng tư, tập tin hệ thống, hay truy cập mạng. Do đó, đặc tính bảo mật của CLR cho phép nhữ ng phần mềm đóng gói trên Inernet có nhiều đặc tính mà khô ng ảnh hưởng đ ến việc b ảo mật hệ thố ng. CLR còn thúc đẩy cho mã ngu ồn đ ược thực thi mạnh mẽ hơn b ằng việc thực thi mã nguồn chính xác và sự xác nhận mã nguồ n. Nền tảng của việc thực hiện nà y là Common Type System (CTS). CTS đ ảm b ảo rằng những mã ngu ồn đ ược quản lý thì được tự mô tả (self- describing). Sự khác nhau giữa Microsoft và các trình biên dịch ngôn ngữ củ a hãng thứ ba là việc tạo ra các mã nguồ n đ ược qu ản lý có thể thích hợp với CTS. Điều này thì mã ngu ồn được quản lý có thể sử dụ ng những kiểu được qu ản lý khác và nhữ ng thể hiện, trong khi thúc đ ẩy nghiêm ngặt việc sử d ụng kiểu d ữ liệu chính xác và an toàn. Thêm vào đó, môi trường được quản lý củ a runtime sẽ thực hiện việc tự động xử lý layout của đối tượng và q uản lý những tham chiếu đ ến đối tượng, giải phóng chúng khi chúng không còn được sử dụ ng nữa. Việc quản lý bộ nhớ tự động nà y cò n giải quyết hai lỗi chung củ a ứng dụng: thiếu bộ nhớ và tham chiếu bộ nhớ không hợp lệ. Trong khi runtime được thiết kế cho nhữ ng phần mềm củ a tương lai, nó cũ ng hỗ trợ cho phân mềm ngày nay và trước đ ây. Khả năng hoạt động qua lại giữa mã ngu ồn được quản lý và mã nguồ n khô ng đ ược quản lý cho phép ngườ i phát triển tiếp tục sử dụ ng những thành phần cần thiết của COM và DLL. Rutime được thiết kế để cải tiến hiệu su ất thực hiện. Mặc dù CLR cung cấp nhiều các tiêu chu ẩn d ịch vụ runtime, nhưng mã nguồ n được qu ản lý khô ng bao giờ đ ược d ịch. Có mộ t đặc tính gọ i là Just-in-Time (JIT) biên d ịch tất cả nhữ ng mã nguồn đ ược quản lý vào trong ngôn ngữ má y củ a hệ thống vào lúc mà nó được thực thi. Khi đó, trình quản lý bộ nhớ xó a bỏ những phân mảnh bộ nhớ nếu có thể được và gia tăng tham chiếu bộ nhớ cụ c bộ , và kết quả gia tăng hiệu qu ả thực thi. 13 Microsoft .NET
- Ngôn Ngữ Lập Trình C# Thư viện lớp .NET Framework Thư viện lớp .NET Framework là mộ t tập hợp nhữ ng kiểu dữ liệu được dùng lại và được kết hợp chặt chẽ với Common Language Runtime. Thư viện lớp là hướng đố i tượng cung cấp những kiểu dữ liệu mà mã nguồ n được qu ản lý của chú ng ta có thể d ẫn xuất. Điều nà y không chỉ làm cho nhữ ng kiểu dữ liệu của .NET Framework dễ sử dụ ng mà cò n làm giảm thờ i gian liên quan đ ến việc học đ ặc tính mới củ a .NET Framework. Thêm vào đó, các thành phần của các hãng thứ ba có thể tích hợp với nhữ ng lớp trong .NET Framework. Cũng như mong đ ợi củ a người phát triển với thư viện lớp hướng đối tượng, kiểu d ữ liệu . NET Framework cho phép người phát triển thiết lập nhiều mức độ thô ng dụ ng của việc lập trình, bao gồ m các nhiệm vụ như: qu ản lý chuỗi, thu thập hay chọn lọc d ữ liệu, kết nối với cơ cở d ữ liệu, và truy cập tập tin. Ngoài nhữ ng nhiệm vụ thông d ụng trên. Thư viện lớp còn đưa vào những kiểu dữ liệu để hỗ trợ cho những kịch bản phát triển chuyên biệt khác. Ví dụ người phát triển có thể sử dụng .NET Framework để p hát triển những kiểu ứng dụng và dịch vụ như sau: Ứ ng d ụng Console Ứ ng d ụng giao diện GUI trên Windows (Windows Forms) Ứ ng d ụng ASP.NET Dịch vụ XML Web Dịch vụ Windows Trong đ ó những lớp Windows Forms cung cấp một tập hợp lớn các kiểu dữ liệu nhằm làm đơn giản việc phát triển các ứng dụng GUI chạy trên Windows. Còn nếu như viết các ứng dụng ASP.NET thì có thể sử dụ ng các lớp Web Forms trong thư viện .NET Framework. Phá t triển ứng dụng Client Những ứng dụng client cũng gần với những ứng dụ ng kiểu truyền thống đ ược lập trình dựa trên Windows. Đây là những kiểu ứng d ụng hiển thị những cửa sổ hay những form trên desktop cho phép người dùng thực hiện mộ t thao tác hay nhiệm vụ nào đó . Những ứ ng dụ ng client bao gồm nhữ ng ứng dụ ng như xử lý văn bản, xử lý bảng tính, những ứng d ụng trong lĩnh vự c thương mại như cô ng cụ nhập liệu, cô ng cụ tạo b áo cáo...Những ứng d ụng client này thường sử d ụng nhữ ng cửa sổ, menu, toolbar, button hay các thành phần GUI khác, và chúng thường truy cập các tài nguyên cục bộ như là các tập tin hệ thố ng, các thiết b ị ngo ại vi như máy in. Một loại ứng d ụng client khác với ứng dụng truyền thố ng như trên là ActiveX control (hiện nay nó đ ược thay thế b ởi các Windows Form control) được nhú ng vào các trang web trên Internet. Các ứng dụng này cũng giố ng như những ứ ng dụ ng client khác là có thể truy cập tài nguyên cụ c bộ. Trong quá khứ, nhữ ng nhà phát triển có thể tạo các ứng dụng sử dụ ng C/C++ thông qua kết nố i với MFC hoặc sử dụng mô i trường phát triển ứ ng dụ ng nhanh (RAD: Rapid 14 Microsoft .NET
- Ngôn Ngữ Lập Trình C# Application Development). .NET Framework tích hợp diện mạo của nhữ ng sản phẩm thành một. Mô i trường phát triển cố định làm đ ơn giản m ạnh mẽ sự phát triển củ a ứng dụng client. Những lớp .NET Framework chứa trong .NET Framework đ ược thiết kế cho việc sử dụ ng phát triển các GUI. Điều này cho phép ngườ i phát triển nhanh chó ng và d ễ dàng tạo các cửa sổ, button, menu, toolbar, và các thành phần khác trong các ứng dụ ng đ ược viết phụ c vụ cho lĩnh vự c thương mại. Ví dụ như, .NET cung cấp những thuộ c tính đ ơn giản đ ể hiệu chỉnh các hiệu ứng visual liên quan đến form. Trong vài trường hợp hệ đ iều hành không hỗ trợ việc thay đ ổi những thuộ c tính này một cách trực tiếp, và trong trường hợp này .NET tự độ ng tạo lại form. Đây là một trong nhiều cách mà .NET tích hợp việc phát triển giao diện làm cho mã ngu ồn đơn giản và mạnh mẽ hơn. Không giố ng như ActiveX control, Windows Form control có sự truy cập giới hạn đến máy của người sử dụ ng. Điều này có nghĩa rằng mà ngu ồn thực thi nhị phân có thể truy cập một vài tài nguyên trong máy của người sử dụ ng (như các thành phần đồ họa hay một số tập tin đ ược giới hạn) mà khô ng thể truy cập đ ến những tài nguyên khác. Nguyên nhân là sự bảo mật truy cập của mã nguồ n. Lú c này các ứng dụng được cài đặt trên máy người d ùng có thể an toàn để đưa lên Internet Biên dịch và MSIL Trong .NET Framework, chương trình không đ ược biên dịch vào các tập tin thực thi mà thay vào đó chú ng đ ược biên d ịch vào những tập tin trung gian gọ i là Microsoft Intermediate Language (MSIL). Những tập tin MSIL được tạo ra từ C# cũ ng tương tự như các tập tin MSIL được tạo ra từ những ngô n ngữ khác củ a .NET, platform ở đ ây khô ng cần biết ngôn ngữ củ a mã nguồ n. Điều quan trọng chính yếu của CLR là chung (common), cù ng một runtime hỗ trợ phát triển trong C# cũ ng như trong VB.NET. Mã nguồ n C# đ ược biên dịch vào MSIL khi chú ng ta build project. M ã MSIL này được lưu vào trong một tập tin trên đĩa. Khi chúng ta chạy chương trình, thì MSIL đ ược biên dịch một lần nữa, sử dụ ng trình biên dịch Just-In-Time (JIT). Kết qu ả là mã máy được thực thi bởi bộ xử lý của máy. Trình biên d ịch JIT tiêu chu ẩn thì thự c hiện theo yêu cầu. Khi mộ t phương thức đ ược gọi, trình biên dịch JIT phân tích MSIL và tạo ra sản phẩm mã máy có hiệu quả cao, mã này có thể chạ y rất nhanh. Trình biên dịch JIT đủ thông minh để nhận ra khi mộ t mã đã đ ược biên dịch, do vậy khi ứng dụng chạy thì việc biên d ịch chỉ xảy ra khi cần thiết, tức là chỉ biên dịch mã MSIL chưa biên dịch ra mã máy. Khi đó mộ t ứng dụ ng .NET thực hiện, chú ng có xu hướng là chạ y nhanh và nhanh hơn nữa, cũ ng như là những mã nguồ n được biên dịch rồi thì được dùng lại. Do tất cả các ngô n ngữ .NET Framework cùng tạo ra sản phẩm MSIL giống nhau, nên kết quả là một đố i tượng đ ược tạo ra từ ngôn ngữ nà y có thể được truy cập hay đ ược d ẫn xuất từ 15 Microsoft .NET
- Ngôn Ngữ Lập Trình C# một đố i tượng của ngô n ngữ khác trong .NET. Ví dụ, người phát triển có thể tạo một lớp cơ sở trong VB.NET và sau đó dẫn xu ất nó trong C# mộ t cách d ễ dàng. Ngôn ngữ C# Ngôn ngữ C# khá đ ơn giản, chỉ kho ảng 80 từ khóa và hơn mười mấy kiểu dữ liệu được xây dựng sẵn. Tuy nhiên, ngôn ngữ C# có ý nghĩa cao khi nó thực thi những khái niệm lập trình hiện đại. C# bao gồm tất cả những hỗ trợ cho cấu trúc, thành phần component, lập trình hướng đố i tượng. Những tính chất đ ó hiện diện trong mộ t ngô n ngữ lập trình hiện đ ại. Và ngô n ngữ C# hộ i đủ nhữ ng điều kiện như vậ y, hơ n nữa nó được xây dựng trên nền tảng củ a hai ngôn ngữ mạnh nhất là C++ và Java. Ngôn ngữ C# đ ược phát triển bởi độ i ngũ kỹ sư của Microsoft, trong đ ó người dẫn đầu là Anders Hejlsberg và Scott Wiltamuth. Cả hai ngườ i này điều là nhữ ng người nổi tiếng, trong đó Anders Hejlsberg đ ược biết đ ến là tác giả củ a Turbo Pascal, mộ t ngô n ngữ lập trình PC phổ biến. Và ông đứng đầu nhóm thiết kế Borland Delphi, một trong những thành công đ ầu tiên củ a việc xây d ựng môi trường phát triển tích hợp (IDE) cho lập trình client/server. Phần cố t lõi hay cò n gọi là trái tim của b ất cứ ngô n ngữ lập trình hướng đố i tượng là sự hỗ trợ của nó cho việc đ ịnh nghĩa và làm việc với những lớp. Những lớp thì đ ịnh nghĩa những kiểu d ữ liệu mới, cho phép người phát triển mở rộng ngô n ngữ đ ể tạo mô hình tốt hơn đ ể giải quyết vấn đề. Ngôn ngữ C# chứa những từ khó a cho việc khai báo những kiểu lớp đố i tượng mới và những phương thức hay thu ộc tính củ a lớp, và cho việc thực thi đó ng gói, kế thừa, và đa hình, ba thuộ c tính cơ bản củ a bất cứ ngô n ngữ lập trình hướng đối tượng. Trong ngô n ngữ C# mọi thứ liên quan đ ến khai b áo lớp đ iều đ ược tìm thấy trong phần khai b áo của nó. Định nghĩa mộ t lớp trong ngô n ngữ C# không đò i hỏi phải chia ra tập tin header và tập tin ngu ồn giống như trong ngô n ngữ C++. Hơn thế nữ a, ngôn ngữ C# hỗ trợ kiểu XML, cho phép chèn các tag XML đ ể phát sinh tự độ ng các document cho lớp. C# cũng hỗ trợ giao diện interface, nó được xem như mộ t cam kết với một lớp cho những dịch vụ mà giao diện quy định. Trong ngôn ngữ C#, một lớp chỉ có thể kế thừa từ duy nhất một lớp cha, tức là không cho đ a kế thừa như trong ngôn ngữ C++, tuy nhiên một lớp có thể thực thi nhiều giao diện. Khi một lớp thực thi mộ t giao diện thì nó sẽ hứa là nó sẽ cung cấp chức năng thực thi giao diện. Trong ngô n ngữ C#, nhữ ng cấu trú c cũ ng đ ược hỗ trợ, nhưng khái niệm về ngữ nghĩa của nó thay đ ổi khác với C++. Trong C#, mộ t cấu trúc được giới hạn, là kiểu d ữ liệu nhỏ gọ n, và khi tạo thể hiện thì nó yêu cầu ít hơn về hệ đ iều hành và bộ nhớ so với một lớp. Mộ t cấu trúc thì khô ng thể kế thừa từ mộ t lớp hay được kế thừa nhưng mộ t cấu trúc có thể thực thi một giao diện. Ngôn ngữ C# cung cấp những đặc tính hướ ng thành phần (compo nent-oriented), như là những thu ộc tính, những sự kiện. Lập trình hướng thành phần đ ược hỗ trợ b ởi CLR cho phép lưu trữ metadata với mã ngu ồn cho một lớp. Metadata mô tả cho một lớp, bao gồ m những 16 Microsoft .NET
- Ngôn Ngữ Lập Trình C# phương thức và những thuộ c tính của nó, cũ ng như những sự bảo mật cần thiết và những thuộ c tính khác. Mã ngu ồn chứa đựng những logic cần thiết để thực hiện những chức năng của nó.. Do vậy, mộ t lớp được biên dịch như là mộ t khố i self-contained, nên mô i trường hosting biết đ ược cách đọc metadata củ a mộ t lớp và mã nguồn cần thiết mà không cần những thông tin khác đ ể sử dụng nó. Một lưu ý cuối cùng về ngôn ngữ C# là ngôn ngữ này cũng hỗ trợ việc truy cập bộ nhớ trực tiếp sử dụ ng kiểu con trỏ của C++ và từ khó a cho d ấu ngo ặc [] trong toán tử. Các mã ngu ồn nà y là không an to àn (unsafe). Và bộ giải phóng bộ nhớ tự độ ng của CLR sẽ khô ng thực hiện việc giải phó ng những đ ối tượng đ ược tham chiếu b ằng sử dụng con trỏ cho đ ến khi chú ng được giải phóng. 17 Microsoft .NET
- Ngôn Ngữ Lập Trình C# Chương 2 NGÔN NGỮ C# Tại sao phải sử dụng ngôn ngữ C# C# là ngôn ng ữ đơn giả n C# là ngôn ng ữ hiện đạ i C# là ngôn ngữ hướng đố i tượng C# là ngôn ngữ mạ nh mẽ C# là ngôn ngữ ít từ khóa C# là ngôn ngữ module hóa C# sẽ là ngô n ngữ phổ biến Ngôn ngữ C# và những ngô n ngữ khá c Các bước chuẩ n bị cho chương trình Chương trình C# đơn giản Phá t triển chương trình minh họa Câu hỏi & bà i tập Tại sao phải sử dụng ngôn ngữ C# Nhiều người tin rằng không cần thiết có một ngô n ngữ lập trình mới. Java, C++, Perl, Microsoft Visual Basic, và những ngôn ngữ khác đ ược nghĩ rằng đ ã cung cấp tất cả những chức năng cần thiết. Ngôn ngữ C# là mộ t ngô n ngữ đ ược d ẫn xuất từ C và C++, nhưng nó được tạo từ nền tảng phát triển hơn. Microsoft b ắt đầu với công việc trong C và C++ và thêm vào những đ ặc tính mới để làm cho ngôn ngữ nà y d ễ sử dụng hơn. Nhiều trong số những đặc tính này khá giống với nhữ ng đặc tính có trong ngô n ngữ Java. Khô ng d ừng lại ở đó, Microsoft đ ưa ra mộ t số mục đích khi xâ y dựng ngôn ngữ nà y. Những mụ c đích nà y được được tóm tắt như sau: C# là ngôn ngữ đơ n giả n C# là ngôn ngữ hiện đại C# là ngôn ngữ hướng đối tượ ng C# là ngôn ngữ mạnh mẽ và mềm dẻo 18 Ngôn Ngữ C#
- Ngôn Ngữ Lập Trình C# C# là ngôn ngữ có ít từ khóa C# là ngôn ngữ hướng module C# sẽ trở nên phổ biến C# là ngôn ngữ đ ơn giản C# lo ại bỏ một vài sự phức tạp và rố i rắm củ a những ngôn ngữ như Java và c++, b ao gồ m việc lo ại bỏ nhữ ng macro, những template, đa kế thừa, và lớp cơ sở ảo (virtual base class). Chúng là nhữ ng nguyên nhân gâ y ra sự nhầm lẫn hay d ẫn đ ến những vấn đề cho các người phát triển C++. Nếu chú ng ta là người họ c ngô n ngữ này đ ầu tiên thì chắc chắn là ta sẽ khô ng trải qua nhữ ng thời gian đ ể họ c nó ! Như ng khi đó ta sẽ khô ng biết được hiệu quả của ngô n ngữ C# khi loại bỏ những vấn đ ề trên. Ngôn ngữ C# đơn giản vì nó d ựa trên nền tảng C và C++. Nếu chúng ta thân thiện với C và C++ hoậc thậm chí là Java, chú ng ta sẽ thấ y C# khá giố ng về d iện mạo, cú p háp, biểu thức, to án tử và những chức năng khác được lấy trực tiếp từ ngô n ngữ C và C++, nhưng nó đã được cải tiến để làm cho ngôn ngữ đơn giản hơn. Một vài trong các sự cải tiến là loại b ỏ các dư thừa, hay là thêm vào những cú pháp thay đ ổi. Ví dụ như, trong C++ có b a toán tử làm việc với các thành viên là ::, . , và ->. Để b iết khi nào dùng ba to án tử này cũng phức tạp và dễ nhầm lẫn. Trong C#, chúng được thay thế với một toán tử duy nhất gọi là . (dot). Đối với người mới họ c thì điều này và nhữ ng việc cải tiến khác làm bớt nhầm lẫn và đơn giản hơn. Ghi chú: Nếu chúng ta đã sử dụng Java và tin rằng nó đơn giản, thì chúng ta cũng sẽ tìm thấy rằng C# cũng đ ơn giản. Hầu hết mọi người đều không tin rằng Java là ngôn ngữ đơn giản. Tuy nhiên, C# thì dễ hơn là Java và C++. C# là ngôn ngữ hiện đ ại Điều gì làm cho mộ t ngô n ngữ hiện đ ại? Những đ ặc tính như là xử lý ngoại lệ, thu gom bộ nhớ tự độ ng, nhữ ng kiểu dữ liệu mở rộ ng, và bảo mật mã nguồ n là những đ ặc tính được mong đ ợi trong mộ t ngô n ngữ hiện đ ại. C# chứa tất cả nhữ ng đặc tính trên. Nếu là người mới học lập trình có thể chú ng ta sẽ cảm thấy nhữ ng đặc tính trên phức tạp và khó hiểu. Tuy nhiên, cũng đ ừng lo lắng chúng ta sẽ d ần d ần được tìm hiểu những đ ặc tính qua các chương trong cuố n sách này. Ghi chú: Con trỏ được tích hợp vào ngôn ngữ C++. Chúng cũng là nguyên nhân gây ra nhữ ng rắc rố i của ngô n ngữ này. C# lo ại bỏ nhữ ng phức tạp và rắc rối phát sinh bởi con trỏ . Trong C#, bộ thu gom bộ nhớ tự động và kiểu d ữ liệu an toàn đ ược tích hợp vào ngô n ngữ, sẽ lo ại bỏ những vấn đ ề rắc rố i của C++. C# là ngôn ngữ hướng đối tượng Những đặc điểm chính củ a ngôn ngữ hướng đố i tượng (Object-oriented language) là sự đóng gói (encapsulation), sự kế thừa (inheritance), và đ a hình (polymorphism). C# hỗ trợ tất 19 Ngôn Ngữ C#
- Ngôn Ngữ Lập Trình C# cả những đ ặc tính trên. Phần hướng đối tượng của C# sẽ được trình bày chi tiết trong mộ t chương riêng ở phần sau. C# là ngôn ngữ mạnh mẽ và cũng m ềm dẻo Như đã đề cập trước, với ngôn ngữ C# chúng ta chỉ b ị giới hạn ở chính bởi bản thân hay là trí tưởng tượng của chú ng ta. Ngôn ngữ nà y không đ ặt những ràng buộ c lên những việc có thể làm. C# đ ược sử dụng cho nhiều các d ự án khác nhau như là tạo ra ứng dụng xử lý văn bản, ứng dụ ng đồ họa, bản tính, hay thậm chí những trình biên d ịch cho các ngôn ngữ khác. C# là ngôn ngữ ít từ khóa C# là ngô n ngữ sử dụ ng giới hạn nhữ ng từ khóa. Phần lớn các từ khó a được sử dụng đ ể mô tả thô ng tin. Chúng ta có thể nghĩ rằng mộ t ngôn ngữ có nhiều từ khóa thì sẽ mạnh hơn. Điều nà y khô ng phải sự thật, ít nhất là trong trường hợp ngô n ngữ C#, chú ng ta có thể tìm thấy rằng ngô n ngữ nà y có thể được sử dụng để làm bất cứ nhiệm vụ nào. Bảng sau liệt kê các từ khóa của ngô n ngữ C#. abstract default foreach object sizeof unsafe as delegate goto operator stackalloc ushort base do if out static using bool double implicit override string virtual break else in params struct volatile byte enum int private switch void case event interface protected this while catch explicit internal public throw char extern is readonly true checked false lock ref try class finally long return typeof const fixed namespace sbyte uint continue float new sealed ulong decimal for null short unchecked Bảng 1.2: Từ khóa của ngôn ngữ C#. C# là ngôn ngữ hướng module Mã nguồ n C# có thể đ ược viết trong nhữ ng phần đ ược gọi là những lớp, những lớp này chứa các phương thức thành viên củ a nó. Những lớp và những phương thức có thể đ ược sử dụng lại trong ứng d ụng hay các chương trình khác. Bằng cách truyền các mẫu thô ng tin đ ến những lớp hay phươ ng thức chú ng ta có thể tạo ra nhữ ng mã nguồ n dùng lại có hiệu quả. C# sẽ là một ngô n ngữ phổ biến 20 Ngôn Ngữ C#
ADSENSE
CÓ THỂ BẠN MUỐN DOWNLOAD
Thêm tài liệu vào bộ sưu tập có sẵn:
Báo xấu
LAVA
AANETWORK
TRỢ GIÚP
HỖ TRỢ KHÁCH HÀNG
Chịu trách nhiệm nội dung:
Nguyễn Công Hà - Giám đốc Công ty TNHH TÀI LIỆU TRỰC TUYẾN VI NA
LIÊN HỆ
Địa chỉ: P402, 54A Nơ Trang Long, Phường 14, Q.Bình Thạnh, TP.HCM
Hotline: 093 303 0098
Email: support@tailieu.vn