Bài giảng Lập trình C# - Nguyễn Thị Điệu - Chương 1: Giới thiệu .NET Framework và C#
– Giới thiệu
– Ứng dụng Windows Forms
– Không gian tên
– Các cấu trúc lập trình
– Trình đơn project
– Thanh công cụ
Tóm tắt nội dung Bài giảng Lập trình C# - Nguyễn Thị Điệu - Chương 1: Giới thiệu .NET Framework và C#, để xem tài liệu hoàn chỉnh bạn click vào nút "TẢI VỀ" ở trên
, Visual Studio 2005 ra đời, nó giúp cho nhà phát triển làm việc nhóm dӉ dàng và hiӋu quҧ, cũng như giúp họ giҧm bớt công sӭc và thời gian trong quá trình phát triển. • Ngày 19/11/2007, Microsoft chấm dӭt tiến trình thử nghiӋm kéo dài tới 18 tháng và tung ra phiên bҧn chính thӭc Visual Studio 2008. 5 SѪăQUAăVӄăLSăPHÁTăTRIӆNăCÁCăPHIểNăBҦN VISUAL STUDIO • Thӭ nhất, VS 2008 tích hợp công nghӋ Silverlight và Popfly Explorer. • Thӭ hai, VS 2008 được Microsoft tích hợp thêm LINQ. • Thӭ ba, Công cụ Sync Framework tích hợp sẵn giúp mở rộng khҧ nĕng hỗ trợ đồng bộ hoá cӫa VS 2008 cho phép tҥo ӭng dụng phối hợp ngoҥi tuyến hoặc ngang hàng. 6 1.1. Giӟi thiӋu .Net Framework - .NET Framework là môi trường thực thi các chương trình được xây dựng bằng VB.Net, C#, Visual C++, Visual J++. CHѬѪNGă1.GIӞIăTHIӊUă.NETăFRAMEWORKăVÀăC# 7 CHѬѪNGă1.ăGiӞIăTHIӊUăWINDOWSăFORMS 1.1. Giӟi thiӋu .Net Framework - Common Laguage Runtime(CLR) là bộ phận quҧn lý viӋc thi hành mã lӋnh - Framework Base Classes: thư viӋn các lớp hỗ trợ mọi dịch vụ - Data and XML Classes: thư viӋn chӭa các lớp kết nối CSDL CHѬѪNGă1.ăGIӞIăTHIӊUă.NETăFRAMEWORKăVÀăC# 1.2 Ӭng dụng Window Form a) Tҥo Project Window Form mӟi Bước 1: Vào menu File | New | Project hoặc Ctrl+Shift+N Bước 2: Trong mục Project types: chọn Visual C# - Trong mục Templates: chọn Window form Application - Trong mục Location: chọn thư mục muốn lưu Project - Trong mục Name: nhập tên của Project Bước 3: Click OK để hoàn tất CHѬѪNGă1.GIӞIăTHIӊUă.NETăFRAMEWORKăVÀăC# b) Biên dӏch và Chҥy chѭѫng trình Biên dịch: Vào menu Build | Build Solution or nhấn F6 Chạy chương trình: Vào menu Debug | Start Debugging hoặc nhấn F5. Xóa biên dịch cũ: Vào menu Build | Clear Solution Biên dịch lại: Vào menu Build | Rebuild Solution 10 1.3 Trình đѫn Project Add thêm một Form mới vào Project Add thêm một control do người dụng định nghĩa vào Project Thêm một class vào Project Thêm một items đã tồn tҥi CHѬѪNGă1.GIӞIăTHIӊUă.NETăFRAMEWORKăVÀăC# 11 1.3Trình đѫn Project Biên dịch chương trình Biên dịch lҥi chương trình Cấu hình biên dịch Chҥy chương trình CHѬѪNGă1.GIӞIăTHIӊUă.NETăFRAMEWORKăVÀăC# 1.3 Cấu trúc chung cӫa mӝt chѭѫng trình C# using System; using System.Collections.Generic; using System.Text; namespace myConsoleApplication { class Program { // Khai báo thuộc tính // Vùng khai báo các phương thӭc static void Main(string[] args) { // Vùng khai báo lӋnh } } } KhaiăbáoăsửădụngăcácăNamespace Khaiăbáoăkhôngăgianătênăcӫaăӭngădụng Vùng khai báo class và các thành phần. CHѬѪNGă1.GIӞIăTHIӊUă.NETăFRAMEWORKăVÀăC# 13 a) Không gian tên(Namespace) – Namespace ra đời nhằm giҧi quyết bài toán xung đột tên class(cùng tên lớp) trong cùng một Project – Được tổ chӭc theo dҥng cây phân cấp giống như thư mục. – Trong một Namespace có thể có nhiều class. CHѬѪNGă1.GIӞIăTHIӊUă.NETăFRAMEWORKăVÀăC# b)ăKhaiăbáoăhằng Đặc điểm: - Hằng cũng là một biến nhưng giá trị hằng không thay đổi trong suốt quá trình thực thi chương trình. Hằng bắt buộc phҧi được gán giá trị lúc khai báo. - Hằng được phân thành ba loҥi: giá trị hằng (literal), biểu tượng hằng (symbolic constants), kiểu liӋu kê (enumerations). - Hằng bao giờ cũng static, tuy nhiên ta không thể đưa từ khoá static vào khi khai báo hằng. CHѬѪNGă1.GIӞIăTHIӊUă.NETăFRAMEWORKăVÀăC# b)ăKhaiăbáoăhằng Cú pháp: [mӭc_độ_truy_cập] const tên_hằng = ; Ví dụ: public const int DayOfSendingBill = 1; const int DayOfSendingbill = 1; CHѬѪNGă1.GIӞIăTHIӊUă.NETăFRAMEWORKăVÀăC# KIӆUăLIӊTăKểă- Enumeration Chúng ta định nghĩa một enumeration giống như sau : [private] enum TimeOfDay [:kiểu_dữ_liӋu] // trừ kiểu ký tự { Morning, Afternoon, Evening } const int DoDong = 0; const int DoNguoi = 20; const int DoAm = 40; const int DoNong = 60; const int DoSoi = 100; b)ăKhaiăbáoăbiӃn Cú pháp: [mӭc_đӝ_truy_cұp]ăă; - Với mức_độ_truy_cập là một trong những từ khoá : public, private, protected, …(xem BҦNG 1) - đặt theo quy tắc đặt tên. - VD: private int i; // Ta có thể gán cho biến một giá trị bằng toán tử "=". i = 10; hoặc int i = 10; int x = 10, y = 20; CHѬѪNGă1.GIӞIăTHIӊUă.NETăFRAMEWORKăVÀăC# BҦNGă1.ăMӴCăĐӜăTRUYăCҰP Mӭc đӝ truy cұp Ý nghĩa public Không có giới hҥn, có thể truy xuất mọi nơi trong bҧn thân lớp khai báo và bên ngoài hay trong nội bộ khối assembly. private Riêng tư chỉ có phҥm vi hoҥt động trong lớp mà nó khai báo. Các phương thӭc bên ngoài lớp không thể truy xuất đến nó. protected Các thành viên trong lớp được khai báo bằng protected thì chỉ có các phương thӭc bên trong lớp và các lớp dẫn xuất từ lớp đó mới có thể truy cập đến nó. internal Các phương thӭc, các biến thành viên được khai báo bằng từ khóa Internal có thể được truy cập bởi tất cҧ những phương thӭc cӫa bất cӭ lớp nào trong cùng một khối hợp ngữ assembly với lớp đó. protected internal Các biến thành viên được khai báo bằng từ khóa này trong một lớp A bất kì có thể được truy xuất bởi các phương thӭc thuộc lớp A và các phương thӭc cӫa lớp dẫn xuất từ lớp A và bất cӭ lớp nào trong cùng một khối hợp ngữ với lớp A. QUYăTҲCăĐҺTăTểNăBIӂN • Không trùng với định danh khác trong cùng phҥm vi • Không trùng với từ khóa và các định danh mặc định trong C# • Không bắt đầu bởi chữ số, phҧi bắt đầu bởi các chữ cái hoặc dấu _ • Không chӭa ký tự đặc biӋt và không chӭa dấu cách c) Khai báo phѭѫng thӭc [mӭc_độ_truy_cập] ([danh sách tham số]) { // Viết lӋnh } Ví dụ: public void setData() { } public int getData() { return ; } CHѬѪNGă1.GIӞIăTHIӊUă.NETăFRAMEWORKăVÀăC# 1.4ăCácăkiӇuădӳăliӋu • Kiểu giá trị (Value types) • Kiểu tham chiếu (Reference types) • Kiểu con trỏ (Pointer) CHѬѪNGă1.GIӞIăTHIӊUă.NETăFRAMEWORKăVÀăC# a) Mҧng mӝt chiӅu Khai báo mҧng [mӭc_đӝ_truy_cұp] [ ] ; VD: int[] intArray; Tҥo thể hiӋn cӫa mҧng = new [số phần tử cӫa mҧng]; VD: intArray = new int[10]; * int[] myIntArray = new int[5] { 2, 4, 6, 8, 10}; * int[] myIntArray = { 2, 4, 6, 8, 10}; * string[] stringArray = { "An", "Linh", "Mai", "Ha", "Tu" }; Truy xuất đến các phẩn tử cӫa mҧng [chӍ số]; VD: intArray[0] = 125; intArray[1] = 25; CHѬѪNGă1.GIӞIăTHIӊUă.NETăFRAMEWORKăVÀăC# b) Mҧng nhiӅu chiӅu Khai báo mҧng 2 chiều [ , ] ; VD: int[ , ] intArray; Tҥo thể hiӋn cӫa mҧng 2 chiều = new [số hàng, số cӝt]; VD: intArray = new int[3, 3]; – string[,] stringArray2 = { {"An","Ha"},{"Nana","Cuong"} }; // Tҥo mҧng 2x2 – int[,] rectangularArray = { {0,1,2,3}, {4,5,6,7}, {8,9,10,11} }; // Tҥo mҧng 3x4 Truy xuất đến các phẩn tử cӫa mҧng [chӍ số hƠng,chӍ số cӝt]; VD: intArray[0,1] = 32; CHѬѪNGă1.GIӞIăTHIӊUă.NETăFRAMEWORKăVÀăC# c) Bҧng các toán tử trong C# CHѬѪNGă1.GIӞIăTHIӊUă.NETăFRAMEWORKăVÀăC# c) Bҧng các toán tử trong C# Operators shortcut CHѬѪNGă1.GIӞIăTHIӊUă.NETăFRAMEWORKăVÀăC# VIӂTăGHIăCHÚăTRONGăC# • Cách 1: // lời ghi chú trên 1 dòng • Cách 2: /* lời ghi chú trên nhiều dòng*/ VD: // This is a single-line comment /* This comment spans multiple lines */ DANHăSÁCHăTӮăKHịAăVÀăĐӎNHăDANH 1.5ăCácăcấuătrúcălұpătrìnhă a) Cấu trúc rẽ nhánh If if() Câu lӋnh(s) [else Câu lӋnh(p)] Đúng Sai Đúng LӋnh S Điều kiện LӋnh P CHѬѪNGă1.GIӞIăTHIӊUă.NETăFRAMEWORKăVÀăC# b)ăCấuătrúcălӵaăchӑnăswitchă..ăcase switch () { case gt1: //lӋnh 1 break; case gt2: //lӋnh 2 break; …. //lӋnh n break; [default: //LӋnh n+1 break; ] } switch (integerA) { case 1: Console.WriteLine("integerA =1"); break; case 2: Console.WriteLine("integerA =2"); break; case 3: Console.WriteLine("integerA =3"); break; default: Console.WriteLine("integerA is not 1,2, or 3"); break; } CHѬѪNGă1.GIӞIăTHIӊUă.NETăFRAMEWORKăVÀăC# c)ăCấuătrúcălһpăfor for (; ; ) Câu lệnh(s) 0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 VD: class MainEntryPoint { static void Main(string[] args) { // This loop iterates through rows... for (int i = 0; i < 100; i+=10) { // This loop iterates through columns... for (int j = i; j < i + 10; j++) { Console.Write(" " + j); } Console.WriteLine(); } } } CHѬѪNGă1.GIӞIăTHIӊUă.NETăFRAMEWORKăVÀăC# d)ăCấuătrúcălһpăwhile while() Câu lệnh(s); VD: class MainEntryPoint { static void Main(string[] args) { int i = 1; Console.Write(“max = “); int max = int.Parse(Console.ReadLine()); while(i<max) { Console.write(“ “+i); i*=2; } } } CHѬѪNGă1.GIӞIăTHIӊUă.NETăFRAMEWORKăVÀăC# e)ăCấuătrúcălһpădoă..ăwhile do { Câu lệnh(s); }while(); VD: class MainEntryPoint { static void Main(string[] args) { int i = 1; Console.Write(“max = “); int max = int.Parse(Console.ReadLine()); do { Console.write(“ “+i); i*=2; } while(i<max); } } CHѬѪNGă1.GIӞIăTHIӊUă.NETăFRAMEWORKăVÀăC# f)ăCấuătrúcălһpăforeach foreach ( in ) Câu lӋnh(s); VD: class TestForearch { private static string[] sArray = { "An", "Ha", "Hung", "Linh" }; static void Main() { foreach (string s in sArray) { Console.WriteLine(s + "\t"); } Console.ReadKey(); } } CHѬѪNGă1.GIӞIăTHIӊUă.NETăFRAMEWORKăVÀăC# Bài tұp: Viết chương nhập vào một dãy số thực (int). 1. Viết phương thӭc sắp xếp dãy theo chiều tĕng dần. 2. Hiển thị dãy đã sắp 3. Tìm max, min cӫa dãy changtrailangtu68hy@gmail.com classk5lta@gmail.com chatnd83@gmail.com tuananhvnpt1203@gmail.com
File đính kèm:
- Bài giảng Lập trình C# - Nguyễn Thị Điệu - Chương 1 Giới thiệu .NET Framework và C#.pdf