Báo cáo Bài giảng Ngôn ngữ C#

Tóm tắt Báo cáo Bài giảng Ngôn ngữ C#: ...cho mọi thứ dùng trong chương trìnhKhi đặt định danh: nên có tính gợi nhớTạo ra định danh mớiHelloWorld, Program, Perform, phải khai báo trước khi sử dụngDùng định danh có sẵnConsole, WriteLine, ReadLine, phải chỉ ra nơi chứa định danh (namespace)15IdentifierBao gồm chữ cái, chữ số, ký tự gạch dướ...cit type-cast)24Implicit type castDo C# tự thực hiệnKhông cần lập trình viên can thiệpXảy ra khiÉp từ kiểu nhỏ qua kiểu lớnÉp từ lớp dẫn xuất qua lớp cơ sở25int i = 59;double x = i;string s = "Hello";object o = s;Implicit type-castFromTosbyte short, int, long, float, double, decimal byte short, usho...ư refKhác ref là ko cần khởi tạo giá trị trước khi truyền35Khai báo cho tham sốDùng trước tham số khi gọi hàmref, out, param363 phần tử6 phần tửMảng arrayLuôn khai báo ở cuối danh sách tham số Keyword this37public class list{ private int size; ... public SetSize (int size) { this.size = size; }LoopT...

ppt54 trang | Chia sẻ: havih72 | Lượt xem: 267 | Lượt tải: 0download
Nội dung tài liệu Báo cáo Bài giảng Ngôn ngữ C#, để tải tài liệu về máy bạn click vào nút DOWNLOAD ở trên
Ngôn ngữ C#ContentCấu trúc chương trình C#Kiểu dữ liệu, từ khoá, định danh biến, hằngChuyển đổi kiểuConsole I/OTham số ref, out, paramLệnh lặp for, while, do while, foreachLệnh phân nhánh switch, lệnh nhảyMảng 1 chiều, đa chiềuKiểu enumeration2Cấu trúc chương trình C#3using namespace {	[Khóa truy xuất] class 	{ public static void Main(){ 	}// thành viên khác }// lớp khác *.csCấu trúc chương trình C#using: làm code gọn hơn, ko cần phải dùng tên của namspaceusing System.namespace của chương trình: ko bắt buộcclass: tối thiểu có 1 lớp chứa hàm entry point Main của chương trìnhpublic static void Main(): hàm entry point của chương trình C#4Cấu trúc chương trình C#Nếu ko có namespace  namespace mặc định ko tênNamespace có thể chứa: struct, interface, delegate, enumTrường hợp đơn giản nhất: 1 lớp, 1 file cs và namespace mặc định5Data TypeBao gồmLớp đối tượng	object ký tự	charChuỗi	stringSố nguyên có dấu	sbyte, short, int, long Số nguyên không dấu	byte, ushort, uint, ulongSố thực	float, double, decimalKiểu logic	boolAlias của các lớp dữ liệu trong .NETstring	System.Stringint	System.Int32object	System.Object6Data TypeSử dụng kiểu dữ liệuĐịnh nghĩa trước (C#)Built-in : int, long, string, objectChương trình định nghĩaClass, struct, enumPerson, Student, Employee7Data TypeBuilt-inUser definedThe built-in value typeNameCTS TypeSizeRangesbyteSystem.SByte 8-128..127shortSystem.Int1616 (-32768 .. 32767)intSytem. Int3232-231..231-1longSytem. Int6464-263..263-1byteSystem.SByte 80..255ushortSystem.UInt1616 (0 .. 65535)uintSystem.UInt3232 0..232-1ulongSystem.UInt64640..264-1floatSystem.Single32xấp xỉ từ 3,4E - 38 đến 3,4E+38doubleSystem.Double641,7E-308 đến 1,7E+308decimalSystem.Decimal128Có độ chính xác đến 28 con sốboolSystem.Boolean Kiểu true/falsecharSystem.Char16Ký tự unicode8The built-in reference typeobject: Sytem.ObjectKiểu dữ liệu gốc, cha của tất cả các kiểu dữ liệu trong C#object o = new object();string: Sytem.StringChuỗi ký tự Unicodestring s1 = “Hi”;string s2 = “Hi Hi “;string s = s1 + s2;9The built-in reference type10Phân loại kiểu dữ liệu11Value typeReference typeData typeint num;long count;Object obj = new Object();String str = “reference type”;Phân loại theo cách thức lưu trữ dữ liệuValue TypeChứa giá trị trực tiếpKhông thể nullPhải chứa giá trị xác địnhBao gồmPrimitive typedouble, char, int, floatEnumstruct12int i = 59;59i7.83x59adouble x = 7.83;int a = i;Reference typeChỉ tới nơi chứa dữ liệuCó thể nullnull: không chỉ tới bất kỳ đâuBao gồmLớp (class) string, objectGiao diện (interface)Mảng (array)Đại diện (delegate)13string s1 = "Hello";"Hello""Bye"s2s3s1string s2 = "Bye";string s3;s3 = s1;Value type vs. Reference typeCharacteristicValue typeReference typeVariable holdValueReferenceAllocatedStackHeapDefaultZeroNullParameterCopy valueCopy reference14identifierĐịnh danh: những từ được đặt ra để đại diện cho mọi thứ dùng trong chương trìnhKhi đặt định danh: nên có tính gợi nhớTạo ra định danh mớiHelloWorld, Program, Perform, phải khai báo trước khi sử dụngDùng định danh có sẵnConsole, WriteLine, ReadLine, phải chỉ ra nơi chứa định danh (namespace)15IdentifierBao gồm chữ cái, chữ số, ký tự gạch dướiKhông được bắt đầu bằng chữ sốChuong_Trinh, x25, z, _abc, XửLý  hợp lệ2abc, Chuong-Trinh, Xu Ly, class  không hợp lệPhân biệt CHỮ HOA và chữ thườngChuongTrinh và chuongtrinh là khác nhauCác định danh được khai báo trong cùng phạm vi (scope) không được trùng nhauPhải khác với từ khóa (dùng “@” khắc phục)16Keyword17ConstantMột hằng là một biến nhưng trị không thay đổi	const int a = 100; // giá trị ko thể thay đổiHằng bắt buộc phải được gán giá trị lúc khai báo Trị của hằng có thể được tính toán vào lúc biên dịch Hằng bao giờ cũng static 18ConstantƯu điểmChương trình dễ đọc, khắc phục những con số “magic number” trong code.Chương trình dễ sửa hơn.Tránh lỗi dễ dàng hơn, trình biên dịch sẽ báo lỗi nếu gán lại giá trị cho hằng19Minh họa sử dụng hằng20Định nghĩa hằngConstantreadonly21const: phải được gán giá trị khi khai báoreadonly: ko cần khởi tạo trước, khi gán giá trị thì sau đó ko thay đổi đượcChưa được khởi gánKo được thay đổiVariableBiến là nơi lưu dữ liệu của chương trìnhDữ liệu của biếnNằm trong bộ nhớ vật lý (physical RAM)Có thể thay đổi giá trịPhải khai báo trước khi dùngIdentifier: tên để đại diện cho biếnData type: dạng lưu trữ dữ liệu của biến22Data type identifierVariablePhạm vi (scope)Được xác định bởi cặp dấu { và }Có thể chứa phạm vi nhỏ hơnVị trí khai báo biếnTrong thân phương thức: biến cục bộTrong thân lớp(trong class): thuộc tínhBiến trong C# chỉ có tác dụng trong phạm vi mà nó được khai báo23Type castÉp kiểu: chuyển giá trị từ kiểu này sang kiểu khácVí dụChuyển từ int qua float và ngược lạiCó hai loạiÉp kiểu ngầm định (implicit type-cast)Ép kiểu chỉ định (explicit type-cast)24Implicit type castDo C# tự thực hiệnKhông cần lập trình viên can thiệpXảy ra khiÉp từ kiểu nhỏ qua kiểu lớnÉp từ lớp dẫn xuất qua lớp cơ sở25int i = 59;double x = i;string s = "Hello";object o = s;Implicit type-castFromTosbyte short, int, long, float, double, decimal byte short, ushort, int, uint, long, ulong, float, double, decimal short int, long, float, double, decimal ushort int, uint, long, ulong, float, double, decimal int long, float, double, decimal uint long, ulong, float, double, decimal long, ulong float, double, decimal float double char ushort, int, uint, long, ulong, float, double, decimal 26Explicit type-castDo lập trình viên chỉ địnhXảy ra khiÉp từ kiểu lớn qua kiểu nhỏ: có thể mất giá trịÉp từ lớp cơ sở qua lớp dẫn xuất27double x = 74.86;int i = (int)x; // i = 74string s = "Hello";object o = s;string s2 = (string)o;Using Convert classThường dùng khi cần chuyển đổi giữa các kiểu không có liên hệ với nhauConvert.toDataType(SourceValue)Ví dụ: chuyển từ chuỗi sang số thực28string s1 = "56.8";double x = Convert.ToDouble(s1);	// x = 56.8int i = Convert.ToInt32(s2);	// i = 95string s2 = "95";byte j = Convert.ToByte(x);	// j = 56, ít dùngConsole I/OĐể đọc ký tự văn bản từ cửa sổ consoleConsole.Read() giá trị trả về là intConsole.ReadLine() giá trị trả về là stringĐể xuất chuỗi ký tự dùngConsole.Write() / Console.WriteLine()29Console I/OConsole.WriteLine()30\n: ký tự xuống dòngConsole I/O31/ F5Xuất chuỗiĐọc chuỗiChờ đọc 1 dòng, mục đích là dừng màn hìnhBoxing & UnboxingKiểu giá trị có thể được chuyển thành kiểu đối tượngBoxingUnboxing 32UnboxingBoxingchecked & unchecked33throws OverFlowExceptionref, out, paramref: tương tự như truyền tham chiếu trong C/C++Từ khoá ref phải được dùng lúc gọi hàmCác tham số truyền dạng ref phải được khởi tạo giá trị trước 34Khai báo ref trước kiểu dữ liệusử dụng ref cho tham số khi gọi hàmref, out, paramout: tương tự như refKhác ref là ko cần khởi tạo giá trị trước khi truyền35Khai báo cho tham sốDùng trước tham số khi gọi hàmref, out, param363 phần tử6 phần tửMảng arrayLuôn khai báo ở cuối danh sách tham số Keyword this37public class list{ private int size; ... public SetSize (int size) { this.size = size; }LoopTương tự như C: while, do while, for38Phải là giá trị bool: true, falsewhile { // phần thân while}do { // phần thân do while} while ;for( khởi tạo biến lặp; ; thay đổi biến lặp){ // phần thân for}Loop39index = 10;while (index != 0){ Console.WriteLine(index); index--;}index = 0;do{ Console.WriteLine("Happens at least once"); }while (index , trong switch42returnThoát khỏi hàm voidTrả về 1 giá trị của hàm43void Func1(int x) { if (x == 0) return; ...}int max(int a, int b) { if (a > b)  return a; else  return b;}ArrayChứa một số những biến có cùng kiểu dữ liệu.Truy xuất phần tử thông qua chỉ số (index)Chỉ số bắt đầu bằng 0.VDint[] myInteger = new int[5];string[] myString = {“BeMun”,”BeTien” };44Datatype[ ] array-nameArrayLấy kích thước mảng qua thuộc tính Lengthint Size = myArray.Length;Nếu thành phần của mảng là kiểu định trước, có thể dùng hàm Sort của Array để sắp xếpArray.Sort(myArray);Dùng hàm Reverse của Array để đảo thứ tự các phần tử trong mảngArray.Reverse(myArray);45Array46Dùng phương thức tĩnh Sort của lớp Array để sort artistsDùng phương thức tĩnh Reverse của lớp Array để đảo thứ tự artistsMulti-dimensional ArrayKhai báo mảng int 2 dòng 3 cộtint[,] myMatrix = new int[2,3];Có thể khởi gánint[,] myMatrix = new int[,] {{1,2},{3,4},{5,6},{7,8}};int[,] myMatrix = {{1,2},{3,4},{5,6},{7,8}};string[,] beatleName = {{"Lennon","John"}, 	 {"McCartney","Paul"}, 	 {"Harrison","George"}, 	 {"Starkey","Richard"}}; 47Datatype[,] array-nameMulti-dimensional Array48Truy cập tuần tự theo kiểu mảng 1 chiềuTruy cập theo dạng dòng cột qua chỉ mục i và jJagged ArrayJagged là mảng mà mỗi phần tử là một mảng có kích thước khác nhauNhững mảng con này phải được khai báo riêngKhai báo mảng 3 dòng, mỗi dòng là một mảng 1 chiều49Datatype[ ][ ] array-nameint[][] a = new int[3][];a[0] = new int[4];a[1] = new int[3];a[2] = new int[1];Khai báo số dòng, hàngKhai báo số cột riêng chotừng dòngJagged Array50Truy cập theo dòng, cộtTruy cập dùng foreachEnumerationDùng thay thế hằngTập hợp các giá trị hằng được đặt tênKhai báo trực tiếp trong namespaceLà kiểu dữ liệu51enum Color { Red, Green, Blue };enum Access { personal = 1, group = 2, all = 4 };Color c = Color.Red;Access a = Access.personal | Access.group;If ((Access.personal & a) != 0) Console.WriteLine("access granted");Sử dụngEnumerationEnumeration kế thừa từ object (Equals, ToString()).52Enumeration53SummaryCú pháp khá giống với C/C++Kiểu dữ liệu tham chiếu & giá trịTruyền tham số kiểu giá trị cho hàmType-castBoxing & UnboxingĐiều khiển lặp foreach duyệt tập hợpKiểu dữ liệu mảng54

File đính kèm:

  • pptbao_cao_bai_giang_ngon_ngu_c.ppt