TRƯỜNG ĐẠI HỌC KHOA HỌC TỰ NHIÊN KHOA CÔNG NGHỆ THÔNG TIN BỘ MÔN CÔNG NGHỆ PHẦN MỀM TÌM HIỂU NGÔN NGỮ C# VIẾT MỘT ỨNG DỤNG MINH HOẠ
TR NG Đ I H C KHOA H C T NHIÊN KHOA CÔNG NGH THÔNG TIN B MÔN CÔNG NGH PH N M M PH M VĔN VI T - TR NG L P Vƾ TÌM HI U NGƠN NG VI T M T C# VÀ NG D NG MINH H A Đ ÁN T T NGI P GIÁO VIÊN H NG D N NGUY N T N TR N MINH KHANG TP HCM 2002 TR NG Đ I H C KHOA H C T NHIÊN KHOA CÔNG NGH THÔNG TIN B MÔN CÔNG NGH PH N M M PH M VĔN VI T - TR TÌM HI U NGƠN NG NG L P Vƾ C# VÀ VI T M T GIÁO VIÊN H NG D NG MINH H A NG D N NGUY N T N TR N MINH KHANG TP HCM 2002 Lời cám ơn Đ có th hoàn t t đ c đ án này, tr c tiên ph i k đ n công s c c a th y Nguy n T n Tr n Minh Khang Chúng em kính l i c m n đ n th y t n tình h ng d n giúp đỡ th i gian th c hi n đ án Chúng em xin t lòng bi t n sâu s c đ i v i gia đình đ ng viên, t o u ki n đ th c hi n t t đ án Xin cám n cha, mẹ, anh, ch , em! Chúng em xin chân thành c m n đ n th y cô khoa Công ngh thông tin tr ng Đ i h c Khoa h c T nhiên Thành ph H Chí Minh truy n đ t nh ng ki n th c, kinh nghi m q báu cho chúng em q trình h c t p t i tr ng Chúng em xin chân thành c m n đ n b n bè giúp đỡ tài li u, trao đổi h c thu t m i có th th c hi n đ án Xin g i l i c m n đ n b n H Ng c Huy, Tr n Th Anh, Bùi Thanh Tu n Thành ph H Chí Minh, ngày 03 tháng nĕm 2002 Sinh viên Ph m Vĕn Vi t Tr ng L p Vƿ Mục lục L i cám n .3 M c l c Tóm t t Ph n Tìm hi u ngôn ng C# .1 Ch ng C# Net Framework 1.1 N n t ng c a NET 1.2 NET Framework .3 1.3 Biên d ch ngôn ng trung gian (MSIL) .4 1.4 Ngôn ng C# Ch ng Kh i đ u 2.1 L p, đ i t ng ki u .6 2.2 Phát tri n “Hello World” Ch ng Nh ng c s c a ngôn ng C# 12 3.1 Các ki u 12 3.2 Bi n 14 3.3 Bi u th c 16 3.4 Kho ng tr ng 16 3.5 Câu l nh 16 3.6 Toán t .19 3.7 T o vùng tên 21 3.8 Chỉ th ti n x lý 22 Ch ng L p đ i t ng .24 4.1 Đ nh nghƿa l p 24 4.2 T o đ i t ng 25 4.3 S d ng thành viên tƿnh .27 4.4 H y đ i t ng 29 4.5 Truy n tham s 30 4.6 N p ch ng ph ng th c hàm d ng .32 4.7 Đóng gói d li u v i property 33 Ch ng Thừa k Đa hình 35 5.1 Đặc bi t hoá tổng quát hoá 35 5.2 S k thừa .35 5.3 Đa hình .37 5.4 L p trừu t ng 38 5.5 L p g c c a t t c l p: Object 39 5.6 Ki u Boxing Unboxing .40 5.7 L p l ng 42 Ch ng N p ch ng toán t .44 6.1 Cách dùng từ khoá operator .44 6.2 Cách hổ tr ngôn ng Net khác 44 6.3 S h u ích c a toán t .44 6.4 Các toán t logic hai 45 6.5 Toán t so sánh 45 6.6 Toán t chuy n đổi ki u (ép ki u) 45 Ch ng C u trúc 48 7.1 Đ nh nghƿa c u trúc 48 7.2 Cách t o c u trúc 49 Ch ng Giao di n 50 8.1 Cài đặt m t giao di n .50 8.2 Truy xu t ph ng th c c a giao di n 52 8.3 N p ch ng ph n cài đặt giao di n 54 8.4 Th c hi n giao di n m t cách t ng minh 55 Ch ng Array, Indexer, and Collection 58 9.1 M ng (Array) 58 9.2 Câu l nh foreach 59 9.3 Indexers 62 9.4 Các giao di n túi ch a 65 9.5 Array Lists 65 9.6 Hàng đ i 65 9.7 Stacks .66 9.8 Dictionary .66 Ch ng 10 Chu i .67 10.1 T o chu i m i 67 10.2 Ph ng th c ToString() 67 10.3 Thao tác chu i 68 10.4 Thao tác chu i đ ng .70 Ch ng 11 Qu n lý l i .72 11.1 Ném b t bi t l 73 11.2 Đ i t ng Exception 80 11.3 Các bi t l t t o 82 11.4 Ném bi t l l n n a 83 Ch ng 12 Delegate Event 87 12.1 Delegate ( y thác, y quy n) 87 12.2 Event (S ki n) 101 Ch ng 13 L p trình v i C# 109 13.1 ng d ng Windows v i Windows Form 109 Ch ng 14 Truy c p d li u v i ADO.NET 144 14.1 C s d li u ngôn ng truy v n SQL 144 14.2 M t s lo i k t n i hi n s d ng 144 14.3 Ki n trúc ADO.NET 145 14.4 Mơ hình đ i t ng ADO.NET .146 14.5 Trình cung c p d li u (.NET Data Providers) 148 14.6 Kh i s v i ADO.NET 148 14.7 S d ng trình cung c p d li u đ c qu n lý 151 14.8 Làm vi c v i u n k t bu c d li u .152 14.9 Thay đổi b n ghi c a c s d li u 161 Ch ng 15 ng d ng Web v i Web Forms 173 1.1 Tìm hi u v Web Forms 173 15.1 Các s ki n c a Web Forms 174 15.2 Hi n th chu i lên trang 175 15.3 Đi u n xác nh n h p 178 15.4 M t s ví d m u minh h a 179 Ch ng 16 Các d ch v Web 192 Ch ng 17 Assemblies Versioning 196 17.1 T p tin PE 196 17.2 Metadata .196 17.3 Ranh gi i an ninh 196 17.4 S hi u phiên b n (Versioning) 196 17.5 Manifest 196 17.6 Đa Module Assembly 197 17.7 Assembly n i b (private assembly) 198 17.8 Assembly chia sẻ (shared assembly) 198 Ch ng 18 Attributes Reflection 200 18.1 Attributes 200 18.2 Attribute mặc đ nh (intrinsic attributes) .200 18.3 Attribute l p trình viên t o 201 18.4 Reflection .203 Ch ng 19 Marshaling Remoting .204 19.1 Mi n ng D ng (Application Domains) .204 19.2 Context 206 19.3 Remoting 208 Ch ng 20 Thread S Đ ng B 215 20.1 Thread 215 20.2 Đ ng b hóa (Synchronization) 216 20.3 Race condition DeadLock .221 Ch ng 21 Lu ng d li u 223 21.1 T p tin th m c .223 21.2 Đ c ghi d li u 230 21.3 B t đ ng b nh p xu t 235 21.4 Serialization 238 21.5 Isolate Storage 244 Ch ng 22 L p trình NET COM .246 22.1 P/Invoke .246 22.2 Con tr 248 Ph n Xây d ng m t ng d ng minh h a 250 Ch ng 23 Website d y h c ngôn ng C# 251 23.1 Hi n tr ng yêu c u 251 23.2 Phân tích h ng đ i t ng 258 23.3 Thi t k h ng đ i t ng 262 Tóm tắt Đ tài t p trung tìm hi u tồn b khái ni m liên quan đ n ngơn ng C# B i C# đ c Microsoft phát tri n nh m t thành ph n c a khung ng d ng NET Framework h ng Internet nên đ tài bao g m hai ph n sau: Phần 1: Tìm hiểu ngơn ngữ C# Vi c tìm hi u bao g m c ki n th c n n t ng v công ngh NET Framework, chu n b cho khái ni m liên quan gi a C# NET Framework Sau tìm hi u v b cú pháp c a ngôn ng này, bao g m tồn b t p l nh, từ khóa, khái ni m v l p trình h ng đ i t ng theo C#, h tr l p trình h ng component Sau cách l p trình C# v i ng d ng Window cho máy đ bàn C# v i công ngh hi n đ i nh ASP.NET ADO.NET, XML cho l p trình Web Phần 2: Xây dựng ng dụng Ph n báo cáo v ng d ng minh h a cho vi c tìm hi u Tên ng d ng Xây d ng m t Website d y h c C# Đây ng d ng Web cài đặt ngơn ng C# ASP.NET Trong ASP.NET đ c dùng đ xây d ng giao di n t ng tác v i ng i dùng; C# ngơn ng l p trình bên d i ng d ng có thao tác c s d li u (Microsoft SQL Server) thơng quan mơ hình ADO.NET Phần Tìm hiểu ngơn ngữ C# C# Net Framework Gvhd: Nguy n T n Tr n Minh Khang Chương C# Net Framework M c tiêu c a C# cung c p m t ngôn ng l p trình đ n gi n, an tồn, hi n đ i, h ng đ i t ng, đặt tr ng tâm vào Internet, có kh nĕng th c thi cao cho môi tr ng NET C# m t ngơn ng m i, nh ng tích h p nh ng tinh hoa c a ba th p kỷ phát tri n c a ngôn ng l p trình Ta có th d dàng th y C# có nh ng đặc tr ng quen thu c c a Java, C++, Visual Basic, … Đ tài đặt tr ng tâm gi i thi u ngôn ng C# cách dùng nh m t cơng c l p trình n n t ng NET V i ngơn ng C++, h c ta không c n quan tâm đ n môi tr ng th c thi V i ngôn ng C#, ta h c đ t o m t ng d ng NET, n u l ý có th b lỡ quan m c a ngơn ng Do đó, đ tài xét C# t p trung ng c nh c th n n t ng NET c a Microsoft ng d ng máy tính đ bàn ng d ng Internet Ch ng trình bày chung v hai ph n ngôn ng C# n n t ng NET, bao g m c khung ng d ng NET (.NET Framework) 1.1 Nền tảng c a NET Khi Microsoft công b C# vào tháng nĕm 2000, vi c khánh thành m t ph n s r t nhi u s ki n mà n n t ng Net đ c công công b N n t ng Net bô khung phát tri n ng d ng m i, cung c p m t giao di n l p trình ng d ng (Application Programming Interface - API) m i m cho d ch v h u hành Windows, c th Windows 2000, mang l i nhi u kỹ thu t khác b t c a Microsoft su t từ nh ng nĕm 90 Trong s có d ch v COM+, cơng ngh ASP, XML thi t k h ng đ i t ng, h tr giao th c d ch v web m i nh SOAP, WSDL UDDL v i tr ng tâm Internet, t t c đ c tích h p ki n trúc DNA N n t ng NET bao g m b n nhóm sau: M t t p ngôn ng , bao g m C# Visual Basic Net; m t t p công c phát tri n bao g m Visual Studio Net; m t t p đ y đ th vi n ph c v cho vi c xây d ng ng d ng web, d ch v web ng d ng Windows; có CLR - Common Language Runtime: (ngơn ng th c thi dùng chung) đ th c thi đ i t ng đ c xây d ng bô khung M t t p Server Xí nghi p Net nh SQL Server 2000 Exchange 2000, BizTalk 2000, … chúng cung c p ch c nĕng cho vi c l u tr d li u quan h , th n t , th ng m i n t B2B, … C# Net Framework Gvhd: Nguy n T n Tr n Minh Khang Các d ch v web th ng m i mi n phí, vừa đ c cơng b g n đ y nh d án Hailstorm; nhà phát tri n có th dùng d ch v đ xây d ng ng d ng đòi h i tri th c v đ nh danh ng i dùng… .NET cho thi t b không ph i PC nh n tho i (cell phone), thi t b game 1.2 NET Framework Net h tr tích h p ngơn ng , t c ta có th k thừa l p, b t bi t l , đa hình thơng qua nhi u ngơn ng NET Framework th c hi n đ c vi c nh vào đặc t Common Type System - CTS (h th ng ki u chung) mà t t c thành ph n Net đ u tuân theo Ví d , m i th Net đ u đ i t ng, thừa k từ l p g c System.Object Ngồi Net cịn bao g m Common Language Specification - CLS (đặc t ngơn ng chung) Nó cung c p qui t c c b n mà ngơn ng mu n tích h p ph i th a mãn CLS yêu c u t i thi u c a ngôn ng h tr Net Trình biên d ch tuân theo CLS s t o đ i t ng có th t ng h p v i đ i t ng khác B th vi n l p c a khung ng d ng (Framework Class Library - FCL) có th đ c dùng b i b t kỳ ngôn ng tuân theo CLS .NET Framework nằm t ng c a h u hành (b t kỳ h u hành không Windows) .NET Framework bao bao g m: • B n ngơn ng th c: C#, VB.Net, C++, Jscript.NET • Common Language Runtime - CLR, n n t ng h ng đ i t ng cho phát tri n ng d ng Windows web mà ngơn ng có th chia sẻ s d ng • B th vi n Framework Class Library - FCL Hình 1-1 Kiến trúc khung ng dụng Net C# Net Framework Gvhd: Nguy n T n Tr n Minh Khang Thành ph n quan tr ng nh t c a NET Framework CLR, cung c p môi tr ng cho ng d ng th c thi, CLR m t máy o, t ng t máy o Java CLR kích ho t đ i t ng, th c hi n ki m tra b o m t, c p phát b nh , th c thi thu d n chúng Trong Hình 1-1 t ng c a CLR bao g m: • Các l p c s • Các l p d li u XML • Các l p cho d ch v web, web form, Windows form Các l p đ c g i chung FCL, Framework Class Library, cung c p API h ng đ i t ng cho t t c ch c nĕng c a NET Framework (h n 5000 l p) Các l p c s t ng t v i l p Java Các l p h tr thao tác nh p xu t, thao tác chuổi, vĕn b n, qu n lý b o m t, truy n thông m ng, qu n lý ti u trình ch c nĕng tổng h p khác … Trên m c l p d li u XML L p d li u h tr vi c thao tác d li u c s d li u Các l p bao g m l p SQL (Structure Query Language: ngôn ng truy v n có c u trúc) cho phép ta thao tác d li u thông qua m t giao ti p SQL chu n Ngồi cịn m t t p l p g i ADO.Net cho phép thao tác d li u L p XML h tr thao tác d li u XML, tìm ki m di n d ch XML Trên l p d li u XML l p h tr xây d ng ng d ng Windows (Windows forms), ng d ng Web (Web forms) d ch v Web (Web services) 1.3 Biên dịch ngôn ngữ trung gian (MSIL) V i NET ch ng trình khơng biên d ch thành t p tin th c thi, mà biên d ch thành ngôn ng trung gian (MSIL - Microsoft Intermediate Language, vi t t t IL), sau chúng đ c CLR th c thi Các t p tin IL biên d ch từ C# đ ng nh t v i t p tin IL biên d ch từ ngôn ng Net khác Khi biên d ch d án, mã ngu n C# đ c chuy n thành t p tin IL l u đƿa Khi ch y ch ng trình IL đ c biên d ch (hay thông d ch) m t l n n a trình Just In Time - JIT, k t qu mã máy b x lý s th c thi Trình biên d ch JIT ch y có yêu c u Khi m t ph ng th c đ c g i, JIT phân tích IL sinh mã máy t i u cho lo i máy JIT có th nh n bi t mã ngu n đ c biên d ch ch a, đ có th ch y ng d ng hay ph i biên d ch l i CLS có nghƿa ngơn ng Net sinh mã IL Các đ i t ng đ c t o theo m t ngôn ng s đ c truy c p thừa k b i đ i t ng c a ngơn ng khác Vì v y ta có th t o đ c m t l p c s VB.Net thừa k từ C# C# Net Framework Gvhd: Nguy n T n Tr n Minh Khang 1.4 Ngôn ngữ C# C# m t ngôn ng r t đ n gi n, v i kho ng 80 từ khoá h n m i ki u d li u d ng sẵn, nh ng C# có tính di n đ t cao C# h tr l p trình có c u trúc, h ng đ i t ng, h ng thành ph n (component oriented) Tr ng tâm c a ngôn ng h ng đ i t ng l p L p đ nh nghƿa ki u d li u m i, cho phép m r ng ngôn ng theo h ng c n gi i quy t C# có nh ng từ khố dành cho vi c khai báo l p, ph ng th c, thu c tính (property) m i C# h tr đ y đ khái ni m tr c t l p trình h ng đ i t ng: đóng gói, thừa k , đa hình Đ nh nghƿa l p C# khơng địi h i tách r i t p tin tiêu đ v i t p tin cài đặt nh C++ H n th , C# h tr ki u s u li u m i, cho phép s u li u tr c ti p t p tin mã ngu n Đ n biên d ch s t o t p tin s u li u theo đ nh d ng XML C# h tr khái ni m giao di n, interfaces (t ng t Java) M t l p có th k thừa nh t m t l p cha nh ng có th cài đặt nhi u giao di n C# có ki u cấu trúc, struct (khơng gi ng C++) C u trúc ki u h ng nhẹ b gi i h n.C u trúc không th thừa k l p hay đ c k thừa nh ng có th cài đặt giao di n C# cung c p nh ng đặc tr ng l p trình h ng thành ph n nh property, s ki n d n h ng khai báo (đ c g i attribute) L p trình h ng component đ c h tr b i CLR thông qua siêu d li u (metadata) Siêu d li u mô t l p bao g m ph ng th c thu c tính, thơng tin b o m t … Assembly m t t p h p t p tin mà theo cách nhìn c a l p trình viên th vi n liên k t đ ng (DLL) hay t p tin th c thi (EXE) Trong NET m t assembly m t đon v c a vi c tái s d ng, xác đ nh phiên b n, b o m t, phân ph i CLR cung c p m t s l p đ thao tác v i assembly C# cho truy c p tr c ti p b nh dùng tr ki u C++, nh ng vùng mã đ c xem nh khơng an tồn CLR s khơng th c thi vi c thu d n rác t đ ng đ i t ng đ c tham chi u b i tr cho đ n l p trình viên t gi i phóng Kh i đ u Gvhd: Nguy n T n Tr n Minh Khang Chương Khởi đầu Ch ng ta s t o, biên d ch ch y ch ng trình “Hello World” ngơn ng C# Phân tích ng n g n ch ng trình đ gi i thi u đặc tr ng y u ngơn ng C# Ví dụ 2-1 Chương trình Hello World class HelloWorld { static void Main( ) { // sử dụng đối tượng console hệ thống System.Console.WriteLine("Hello World"); } } Sau biên d ch ch y HelloWorld, k t qu dòng ch “Hello World” hi n th hình 2.1 Lớp, đối tượng kiểu B n ch t c a l p trình h ng đ i t ng t o ki u m i M t kiểu bi u di n m t v t Gi ng v i ngơn ng l p trình h ng đ i t ng khác, m t ki u C# đ nh nghƿa từ khoá class (và đ c g i l p) th hi n c a l p đ c g i đối tượng Xem Ví d 2-1 ta th y cách khai báo m t l p HelloWorld Ta th y cách khai báo n i dung c a m t l p hoàn tồn gi ng v i ngơn ng Java C++, có khác cu i khai báo l p không c n d u “;” 2.1.1 Phương th c Các hành vi c a m t l p đ c g i ph ng th c thành viên (g i t t ph ng th c) c a l p M t phương thức m t hàm (ph ng th c thành viên g i hàm thành viên) Các ph ng th c đ nh nghƿa nh ng mà m t l p có th làm Cách khai báo, n i dung cách s d ng ph ng th c gi ng hoàn toàn v i Java C++ Trong ví d có m t ph ng th c đặc bi t ph ng th c Main() (nh hàm main() C++) ph ng th c b t đ u c a m t ng d ng C#, có th tr v ki u void hay int M i m t ch ng trình (assembly) có th có nhi u ph ng th c Main nh ng ph i đ nh ph ng th c Main() s b t đ u ch ng trình Kh i đ u Gvhd: Nguy n T n Tr n Minh Khang 2.1.2 Các ghi C# có ba ki u ghi có hai ki u r t quen thu c c a C++ dùng: "//" "/* … */" Ngoài m t ki u ghi n a s trình bày ch ng k Ví dụ 2-2 Hai hình th c ghi C# class HelloWorld { static void Main( ) // Đây ghi dòng { /* Bắt đầu ghi nhiều dòng Vẫn ghi Kết thúc ghi */ System.Console.WriteLine("Hello World"); } } 2.1.3 ng dụng dạng console “Hello World” m t ng d ng console Các ng d ng d ng th ng khơng có giao di n ng i dùng đ h a Các nh p xu t đ u thông qua console chu n (d ng dòng l nh nh DOS) Trong ví d trên, ph ng th c Main() vi t hình dịng “Hello World” Do hình qu n lý m t đ i t ng Console, đ i t ng có ph ng th c WriteLine() cho phép đặt m t dịng ch lên hình Đ g i ph ng th c ta dùng toán t “.”, nh sau: Console.WriteLine(…) 2.1.4 Namespaces - Vùng tên Console m t r t nhi u (c ngàn) l p b th vi n NET M i l p đ u có tên nh v y có hàng ngàn tên mà l p trình viên ph i nh ph i tra c u m i s d ng V n đ ph i gi m b t l ng tên ph i nh Ngoài v n đ ph i nh nhi u tên ra, m t nh n xét sau: m t s l p có m i liên h v mặt ng nghƿa, ví d nh l p Stack, Queue, Hashtable … l p cài đặt c u trúc d li u túi ch a Nh v y có th nhóm nh ng l p thành m t nhóm thay ph i nh tên l p l p trình viên c n nh tên nhóm, sau có th th c hi n vi c tra c u tên l p nhóm nhanh chóng h n Nhóm m t vùng tên C# M t vùng tên có th có nhi u l p vùng tên khác N u vùng tên A nằm vùng tên B, ta nói vùng tên A vùng tên c a vùng tên B Khi l p vùng tên A đ c ghi nh sau: B.A.Tên_lớp_trong_vùng_tên_A System vùng tên ch a nhi u l p h u ích cho vi c giao ti p v i h th ng l p công d ng chung nh l p Console, Math, Exception….Trong ví d HelloWorld trên, đ i t ng Console đ c dùng nh sau: System.Console.WriteLine("Hello World"); Kh i đ u Gvhd: Nguy n T n Tr n Minh Khang 2.1.5 Tốn tử chấm “.” Nh Ví d 2-1 toán t ch m đ c dùng đ truy su t d li u ph ng th c m t l p (nh Console.WriteLine()), đ ng th i dùng đ đ nh tên lóp m t vùng tên (nh System.Console) Toán t d u ch m đ c dùng đ truy xu t vùng tên c a m t vùng tên Vùng_tên.Vùng_tên_con.Vùng_tên_con_con 2.1.6 Từ khố using N u ch ng trình s d ng nhi u l n ph ng th c Console.WriteLine, từ System s ph i vi t nhi u l n Đi u có th n l p trình viên nhàm chán Ta s khai báo ch ng trình có s d ng vùng tên System, sau ta dùng l p vùng tên System mà khơng c n ph i có từ System tr c Ví dụ 2-3 Từ khóa using // Khai báo chương trình có sử dụng vùng tên System using System; class HelloWorld { static void Main( ) { // Console thuộc vùng tên System Console.WriteLine("Hello World"); } } 2.1.7 Phân biệt hoa thường Ngôn ng C# phân bi t ch hoa th ng gi ng nh Java hay C++ (khơng nh VB) Ví d nh WriteLine khác v i writeLine c hai khác v i WRITELINE Tên bi n, hàm, … đ u phân bi t ch hoa ch th ng 2.1.8 Từ khố static Trong Ví d 2-1 ph ng th c Main() đ c khai báo ki u tr v void dùng từ khoá static Từ khoá static cho bi t ta có th g i ph ng th c Main() mà không c n t o m t đ i t ng ki u HelloWorld 2.2 Phát triển “Hello World” Có hai cách đ vi t, biên d ch ch y ch ng trình HelloWorld dùng mơi tr ng phát tri n tích h p (IDE) Visual Studio Net hay vi t trình so n th o vĕn b n biên d ch dòng l nh IDE Vs.Net d dùng h n Do đó, đ tài trình bày theo h ng làm vi c IDE Visual Studio Net Kh i đ u Gvhd: Nguy n T n Tr n Minh Khang 2.2.1 Soạn thảo “Hello World” Đ t o ch ng trình “Hello World” IDE, ta ch n Visual Studio Net từ th c đ n Ti p theo hình c a IDE ch n File > New > Project từ th c đ n, theo xu t hi n m t c a sổ nh sau: Hình 2-1 Tạo ng dụng console VS.Net Đ t o ch ng trình “Hello World” ta ch n Visual C# Project > Console Application, n HelloWorld ô Name, ch n đ ng d n nh n OK M t c a sổ so n th o xu t hi n Kh i đ u Gvhd: Nguy n T n Tr n Minh Khang Hình 2-2 Cửa sổ soạn thảo nội dung mã nguồn Vs.Net t t o m t s mã, ta c n chỉnh s a cho phù h p v i ch ng trình c a 2.2.2 Biên dịch chạy “Hello World” Sau đ y đ mã ngu n ta ti n hành biên d ch ch ng trình: nh n “Ctrl–Shift– B” hay ch n Build > Build Solution Ki m tra xem ch ng trình có l i khơng c a sổ Output cu i hình Khi biên d ch ch ng trình s l u l i thành t p tin cs Ch y ch ng trình “Ctrl–F5” hay ch n Debug > Start Without Debugging 2.2.3 Trình gở rối c a Visual Studio Net Trình gỡ r i c a VS.Net r t m nh h u ích Ba kỹ nĕng y u đ s d ng c a trình g r i là: • Cách đặt m ng t (breakpoint) ch y cho đ n m ng t • Làm th ch y b c ch y v t qua m t ph ng th c • Làm đ quan sát hi u chỉnh giá tr c a bi n, d li u thành viên, … Cách đ n gi n nh t đ đặt m ng t b m chu t trái vào phía l trái, t i s hi n lên m t ch m đ 10 Kh i đ u Gvhd: Nguy n T n Tr n Minh Khang Hình 2-3 Minh họa điểm ngắt Cách dùng trình g r i hồn tồn gi ng v i trình g r i VS 6.0 Nó cho phép ta dừng l i m t v trí b t kỳ, cho ta ki m tra giá tr t c th i cách di chuy n chu t đ n v tr bi n Ngoài ra, g r i ta có th xem giá tr bi n thông qua c a sổ Watch Local Đ ch y ch đ g r i ta ch n Debug Start hay nh n F5, mu n ch y b c ta b m F11 ch y v t qua m t ph ng th c ta b m F10 11 Nh ng c s c a ngôn ng C# Gvhd: Nguy n T n Tr n Minh Khang Chương Những sở c a ngôn ngữ C# Trong ch ng s trình bày v h th ng ki u C#; phân bi t ki u d ng sẵn (int, long, bool, …) v i ki u ng i dùng đ nh nghƿa Ngoài ra, ch ng s trình bày cách t o dùng bi n, hằng; gi i thi u ki u li t kê, chu i, ki u đ nh danh, bi u th c, câu l nh Ph n hai c a ch ng trình bày v c u trúc u ki n toán t logic, quan h , toán h c, … 3.1 Các kiểu C# bu c ph i khai báo ki u c a đ i t ng đ c t o Khi ki u đ c khai báo rõ ràng, trình biên d ch s giúp ngĕn ngừa l i cách ki m tra d li u đ c gán cho đ i t ng có h p l khơng, đ ng th i c p phát kích th c b nh cho đ i t ng C# phân thành hai lo i: loai d li u d ng sẵn lo i ng i dùng đ nh nghƿa C# chia t p d li u thành hai ki u: giá trị tham chiếu Bi n ki u giá tr đ c l u vùng nh stack, bi n ki u tham chi u đ c l u vùng nh heap C# h tr ki u tr c a C++, nh ng đ c s d ng Thông th ng tr đ c s d ng làm vi c tr c ti p v i Win API hay đ i t ng COM 3.1.1 Loại liệu định sẳn C# có nhi u ki u d li u đ nh sẳn, m i ki u ánh x đ n m t ki u đ c hổ tr b i CLS (Commom Language Specification), ánh x đ đ m b o đ i t ng đ c t o C# khơng khác đ i t ng đ c t o ngôn ng NET khác M i ki u có m t kích th c c đ nh đ c li t kê b ng sau Bảng 3-1 Các kiểu dựng sẵn Ki u Kích th c (byte) Mơ t - giá tr Ki u Net byte Byte Không d u (0 255) char Char Mã ký th Unicode bool Boolean true hay false sbyte Sbyte Có d u (-128 127) short Int16 Có d u (-32768 32767) ushort Uint16 Không d u (0 65535) int Int32 Có d u (-2147483647 2147483647) 12 ... v cho vi c xây d ng ng d ng web, d ch v web ng d ng Windows; c? ??n c? ? CLR - Common Language Runtime: (ng? ?n ng th c thi d? ?ng chung) đ th c thi đ i t ng đ c xây d ng bô khung M t t p Server Xí nghi... Start hay nh n F5, mu n ch y b c ta b m F11 ch y v t qua m t ph ng th c ta b m F10 11 Nh ng c s c a ng? ?n ng C# Gvhd: Nguy n T n Tr n Minh Khang Chư? ?ng Nh? ?ng sở c a ng? ?n ng? ?? C# Trong ch ng s trình... Nguy n T n Tr n Minh Khang Chư? ?ng Khởi đầu Ch ng ta s t o, biên d ch ch y ch ng trình “Hello World” ng? ?n ng C# Phân tích ng n g n ch ng trình đ gi i thi u đ? ?c tr ng y u ng? ?n ng C# Ví dụ 2-1 Chương