(NB) Giáo trình Lập trình C#1 với mục tiêu giúp các bạn có thể trình bày được các kiến thức về nền tảng Microsoft .NET; Trình bày được các kiến thức và kỹ năng về lập trình hướng đối tượng trên C#; Trình bày được cú pháp các lệnh cơ bản trong C#; Trình bày được các bước xây dựng lớp đối tượng; Mô tả được các bước nạp chồng hàm, chồng toán tử; Trình bày các kiến thức cơ bản về mảng, chuỗi.
BỘ NƠNG NGHIỆP VÀ PHÁT TRIỂN NƠNG THƠN TRƯỜNG CAO ĐẲNG CƠ GIỚI NINH BÌNH GIÁO TRÌNH MƠ ĐUN: LẬP TRÌNH C# 1 NGHỀ: LẬP TRÌNH MÁY TÍNH TRÌNH ĐỘ: CAO ĐẲNG Ban hành kèm theo Quyết định số: /QĐTCĐCGNB ngày….tháng….năm 2017 của Trường Cao đẳng Cơ giới Ninh Bình Tam Điệp, năm 2017 TUN BỐ BẢN QUYỀN Tài liệu này thuộc loại sách giáo trình nên các nguồn thơng tin có thể được phép dùng ngun bản hoặc trích dùng cho các mục đích về đào tạo và tham khảo Mọi mục đích khác mang tính lệch lạc hoặc sử dụng với mục đích kinh doanh thiếu lành mạnh sẽ bị nghiêm cấm LỜI GIỚI THIỆU Trong hệ thống kiến thức chun ngành trang bị cho sinh viên nghề Lập trình máy tính, mơ đun góp phần cung cấp những nội dung liên quan đến ngơn ngữ lập trình C# Các nội dung chính được trình bày trong tài liệu này gồm các bài: Bài 1: Microsoft .NET Bài 2: Ngơn ngữ C# Bài 3: Cơ bản về C# Bài 4: Xây dựng lớp – Đối tượng Bài 5: Kế thừa – Đa hình Bài 6: Nạp chồng tốn tử Bài 7: Mảng, chỉ mục và tập hợp Bài 8: Xử lý chuỗi Mặc dầu có rất nhiều cố gắng, nhưng khơng tránh khỏi những khiếm khuyết, rất mong nhận được sự đóng góp ý kiến của độc giả để giáo trình được hồn thiện hơn Ninh Bình, ngày tháng năm 2017 THAM GIA BIÊN SOẠN 1. Chủ biên – CN Phạm Thị Thoa 2. Th.S Nguyễn Xn Khơi 3. Th.S Nguyễn Anh Văn MỤC LỤC TRANG Bài 1. Microsoft .NET 6 3. Bài tập 99 Tạo lớp số phức bao gồm: 99 GIÁO TRÌNH MƠ ĐUN Tên mơ đun: Lập trình C# 1 Mã số mơ đun: MĐ20 Vị trí, tính chất, ý nghĩa và vai trị của mơ đun: Vị trí: Đây là mơ đun chứa đựng kiến thức nền tảng về ngơn ngữ lập trình C#, là mơ đun hỗ trợ cho hai mơ đun lập trình Windows 2 và lập trình Windows 3. Tính chất Mơ đun này u cầu đã học qua các kiến thức về lập trình hướng đối tượng, cấu trúc dữ liệu Ý nghĩa và vai trị của đun: Mục tiêu của mơ đun: Kiến thức: + Trình bày được các kiến thức về nền tảng Microsoft .NET; + Trình bày được các kiến thức và kỹ năng về lập trình hướng đối tượng trên C#; + Trình bày được cú pháp các lệnh cơ bản trong C#; + Trình bày được các bước xây dựng lớp đối tượng; + Mơ tả được các bước nạp chồng hàm, chồng tốn tử; + Trình bày các kiến thức cơ bản về mảng, chuỗi Kỹ năng: + Sử dụng thành thạo các tốn tử; + Sử dụng được các chỉ dẫn biên dịch; + Sử dụng thành thạo các cấu trúc điều khiển; + Xây dựng được lớp, xây dựng lớp có chồng tốn tử; + Sử dụng được các lớp cơ sở của NET + Khai báo và thao tác được với mảng và chuỗi; Năng lực tự chủ và trách nhiệm: Rèn luyện tính cẩn thận, chính xác, đảm bảo an tồn cho người và trang thiết bị Nội dung của mơn học/mơ đun: Bài 1. Microsoft .NET Mã bài: MĐ20_B01 Giới thiệu : Trong bài này chúng ta sẽ nghiên cứu khái qt về Microsoft.NET, biên dịch và ngơn ngữ C# Mục tiêu : - Trình bày được nền tảng Microsoft .NET, trình biên dịch và MSIL, lý do và lịch sử về sự ra đời của ngơn ngữ C#; - Mơ tả được khái qt về ngơn ngữ C#; Đảm bảo an toàn cho người và thiết bị 1. Microsoft .NET Microsoft NET gồm phần : Framework 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ể 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 Tính năng của Micosoft.NET Một mơ hình lập trình cho phép nhà phát triển xây dựng các ứng dụng dịch vụ web ứ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à phá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 phân phố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 tồn mã nguồn, bao gồm cả việc mã nguồn được tạo bởi hãng thứ ba hay bất cứ hãng nào mà tn 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 Để 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 Common Language Runtime (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 tồ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 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 2. 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 JustInTime (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ừ một đối tượng của ngơn ngữ khác trong .NET 3. 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 C# đượ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 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ó 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 (componentoriented), như thuộc tính, 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 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 10 Sai hỏng thường gặp, ngun nhân và biện pháp phịng tránh/ khắc phục Sai hỏng thường gặp Ngun nhân: Khi khai báo chỉ mục thiếu phạm vi truy xuất là public Biện pháp khắc phục Thêm từ khố public vào trược khai báo chỉ mục 4. Bài tập Nhập vào một dãy n số ngun A[1],A[2], ,A[n] . Đọc ra màn hình các thơng tin sau : Tổng các phần tử của dãy Số lượng các số hạng dương và tổng của các số hạng dương Số lượng các số hạng âm và tổng của các số hạng âm Trung bình cộng của cả dãy. Trung bình cộng các phần tử dương của mảng. Trung bình cộng các phần tử âm của mảng Chỉ số của số hạng dương đầu tiên của dãy Chỉ số của số hạng âm đầu tiên của dãy Chỉ số của số hạng dương cuối cùng của dãy Chỉ số của số hạng âm cuối cùng của dãy Số hạng lớn nhất của dãy và chỉ số của nó 10 Số hạng nhỏ nhất của dãy và chỉ số của nó 11 Số hạng âm lớn nhất của dãy và chỉ số của nó 12 Số hạng dương nhỏ nhất của dãy và chỉ số của nó 117 BÀI 8. XỬ LÝ CHUỖI Mã bài: MĐ20_B08 Giới thiệu: Trong bài này chúng ta sẽ nghiên cứu về chuỗi trong C# Mục tiêu: - Trình bày được cú pháp khai báo chuỗi trong C#; - Biết cách xử lý chuỗi trong các chương trình; - Đảm bảo an toàn cho người và thiết bị 1. Tạo một chuỗi Lớp đối tượng String - C# xem những chuỗi như là những kiểu dữ liệu cơ bản tức là các lớp này rất linh hoạt, mạnh mẽ, và nhất là dễ sử dụng. Mỗi đối tượng chuỗi là một dãy cố định các ký tự Unicode - Khi chúng ta khai báo một chuỗi C# bằng cách dùng từ khóa string, là chúng ta đã khai báo một đối tượng của lớp System.String - Khai báo một đối tượng thuộc lớp string: string [= “chuỗi_gán”]; Ví dụ: string hoten; string ngaysinh; string quequan; - Chuỗi ngun văn: các ký tự trong chuỗi được giữ ngun khơng thay đổi Để gán chuỗi ngun văn ta thêm @ vào trước chuỗi gán cho biến kiểu string như sau: string verbatim1 = @”\\MyDocs\CSharp\ProgrammingC#.cs”; Nếu bình thường khơng có @ ta sẽ khai báo và gán như sau: string verbatim1 = ”\\\\MyDocs\\CSharp\\ProgrammingC#.cs”; Vì muốn thể hiện các ký tự đặc biệt ta phải thêm \ đằng trước ký tự \n: là ký tự xuống hàng Trình tự thực hiện Chuột phải vào tên project\Add\Class 118 Gõ tên lớp clsTime vào mục Name\Chọn Add Viết code lớp clsSinhvien 119 - Viết code cho hàm Main - Biên dịch chương trình: Nhấn F6 - Chạy chương trình: Nhấn F5\ Nhập thơng tin sinh viên 120 Sai hỏng thường gặp, ngun nhân và biện pháp phịng tránh/ khắc phục Sai hỏng thường gặp Ngun nhân: Sử dụng ký tự (‘’) để gán cho biên chuỗi Biện pháp khắc phục Sử dụng ký tự (“”) để gán cho chuỗi 2. Tạo chuỗi dùng phương thức ToString Để tạo một chuỗi ta sử dụng phương thức ToString() của một đối tượng và gán kết quả đến một biến chuỗi Ví dụ: int a = 1900; string str = a.ToString(); Trình tự thực hiện Tạo Project mới Viết code hàm Main 121 Biên dịch: Nhấn F6 Chạy chương trình: Nhấn F5 Sai hỏng thường gặp, ngun nhân và biện pháp phịng tránh/ khắc phục Lỗi Ngun nhân: Viết sai tên phương thức Tostring () Biện pháp khắc phục: Sửa lại thành ToString () 3. Thao tác trên chuỗi Mục tiêu: Trình bày được các phương thức cơ bản cơ lớp String; Vận dụng được các phương thức để làm bài tập Lớp string cung cấp rất nhiều số lượng các phương thức để so sánh, tìm kiếm và thao tác trên chuỗi Phương thức và thuộc tính của lớp String System.String Phương thức/ Trường Empty Ý nghĩa Trường public static thể hiện một chuỗi rỗng 122 Compare() CompareOrdinal() Concat() Copy() Equal() Format() Intern() IsInterned() Join() Phương thức public static để so sánh hai chuỗi Phương thức public static để so sánh hai chuỗi không quan tâm đến thứ tự Phương thức public static để tạo chuỗi mới từ một hay nhiều chuỗi Phương thức public static tạo ra một chuỗi mới bằng sao từ chuỗi khác Phương thức public static kiểm tra xem hai chuỗi có cùng giá trị hay khơng Phương thức public static định dạng một chuỗi dùng ký tự lệnh định dạng xác định Phương thức public static trả về tham chiếu đến thể hiện của chuỗi Phương thức public static trả về tham chiếu của chuỗi Phương thức public static kết nối các chuỗi xác định giữa mỗi thành phần của mảng Chars() chuỗi ủa chuỗi Indexer c Length() Chiều dài của chuỗi Clone() Trả về chuỗi CompareTo() So sánh hai chuỗi CopyTo() EndsWidth() Insert() LastIndexOf() PadLeft() Sao chép một số các ký tự xác định đến một mảng ký tự Unicode Chỉ ra vị trí của chuỗi xác định phù hợp với chuỗi đưa ra Trả về chuỗi mới đã được chèn một chuỗi xác định Chỉ ra vị trí xuất hiện cuối cùng của một chuỗi xác định trong chuỗi Canh lề phải những ký tự trong chuỗi, chèn vào bên trái khoảng trắng hay các ký tự xác định 123 Canh lề trái những ký tự trong chuỗi, chèn vào bên phải khoảng trắng hay các ký tự xác PadRight() định Xóa đi một số ký tự xác định Remove() Trả về chuỗi được phân định bởi những ký tự Split() xác định trong chuỗi Xem chuỗi có bắt đầu bằng một số ký tự xác StartWidth() định hay khơng Lấy một chuỗi con SubString() ToCharArray() ToLower() ToUpper() Sao chép những ký tự từ một chuỗi đến mảng ký tự Trả về bản sao của chuỗi ở kiểu chữ thường Trả về bản sao của chuỗi ở kiểu chữ hoa Xóa bỏ tất cả sự xuất hiện của tập hợp ký Trim() TrimEnd() tự xác định từ vị trí đầu tiên đến vị trí cuối Xóa nh ư nhưng ỗởi. vị trí cuối cùng trong chu TrimStart() Xóa như Trim nhưng ở vị trí đầu Ví dụ: string s1 = "abcd"; string s2 = "ABCD"; // So sánh hai chuỗi với có phân biệt chữ thường chữ hoa result = string Compare(s1, s2, flase); //hoặc string Compare(s1, s2) mặc định tham số thứ false //So sánh không phân biệt chữ thường hay chữ hoa // Tham số thứ ba true bỏ qua kiểm tra ký tự thường – hoa result = string Compare(s1, s2, true); // phương thức nối chuỗi string s4 = string.Concat(s1, s2); // sử dụng nạp chồng toán tử + string s5 = s1 + s2; 124 // Sử dụng phương thức copy chuỗi string s6 = string.Copy(s5); Trình tự thực hiện Tạo Project mới Viết code hàm Main class Program { static void Main(string[] args) { // khởi tạo số chuỗi để thao tác string s1 = "abcd"; string s2 = "ABCD"; string s3 = "Trung Tam Dao Tao CNTT Truong cao dang co gioi Ninh Binh"; int result; // So sánh hai chuỗi với có phân biệt chữ thường chữ hoa result = string.Compare( s1 ,s2); Console.WriteLine("So sanh hai chuoi S1: {0} S2: {1} ket qua: {2} \n", s1 ,s2 ,result); // Sử dụng tiếp phương thức Compare() trường hợp không biệt // chữ thường hay chữ hoa // Tham số thứ ba true bỏ qua kiểm tra ký tự thường – hoa result = string Compare(s1, s2, true); Console.WriteLine("Khong phan biet chu thuong va hoa\n"); Console.WriteLine("S1: {0} , S2: {1}, ket qua : {2}\n", s1, s2, result); // phương thức nối chuỗi string s4 = string.Concat(s1, s2); Console.WriteLine("Chuoi S4 noi tu chuoi S1 va S2: {0}", s4); // sử dụng nạp chồng toán tử + string s5 = s1 + s2; Console.WriteLine("Chuoi S5 duoc noi tu chuoi S1 va S2: {0}", s5); // Sử dụng phương thức copy chuỗi 125 string s6 = string.Copy(s5); Console.WriteLine("S6 duoc chep tu S5: {0}", s6); // Sử dụng nạp chồng toán tử = string s7 = s6; Console.WriteLine("S7 = S6: {0}", s7); // Sử dụng ba cách so sánh hai chuỗi // Cách sử dụng chuỗi để so sánh với chuỗi lại Console.WriteLine("S6.Equals(S7) ?: {0}", s6.Equals(s7)); // Cách dùng hàm lớp string so sánh hai chuỗi Console.WriteLine("Equals(S6, s7) ?: {0}", string.Equals(s6, s7)); // Cách dùng toán tử so sánh Console.WriteLine("S6 == S7 ?: {0}", s6 == s7); // Sử dụng hai thuộc tính hay dùng mục chiều dài chuỗi Console.WriteLine("\nChuoi S7 co chieu dai la : {0}", s7.Length); Console.WriteLine("Ky tu thu cua chuoi S7 la : {0}", s7[2] ); // Kiểm tra xem chuỗi có kết thúc với nhóm ký // tự xác định hay không Console.WriteLine("S3: {0}\n ket thuc voi chu CNTT ? : {1}\n", s3, s3.EndsWith("CNTT")); Console.WriteLine("S3: {0}\n ket thuc voi chu Nam ? : {1}\n", s3, s3.EndsWith("Nam")); // Trả mục chuỗi Console.WriteLine("\nTim vi tri xuat hien dau tien cua chu CNTT "); Console.WriteLine("trong chuoi S3 {0}\n", s3.IndexOf("CNTT")); // Chèn từ nhân lực vào trước CNTT chuỗi S3 string s8 = s3.Insert(18, "nhan luc "); Console.WriteLine(" S8 : {0}\n", s8); 126 // Ngoài ta kết hợp sau string s9 = s3.Insert( s3.IndexOf( "CNTT" ) , "nhan luc "); Console.WriteLine(" S9 : {0}\n", s9); Console.ReadKey(); } } Sai hỏng thường gặp, nguyên nhân và biện pháp phòng tránh/ khắc phục Sai hỏng thường gặp Nguyên nhân Viết sai tên phương thức Biện pháp khắc phục: Sửa cho đúng tên phương thức 4. Tìm một chuỗi con Để trích chuỗi con của một chuỗi ta sử dụng phương thức Substring() theo cú pháp sau: Trích chuỗi con từ vị trí Startindex đến cuối cùng String_name.Substring(int Start index) Ví dụ: string s1 = "Trung Tam Dao Tao CNTT Truong cao dang co gioi Ninh Binh"; string s2 = s1.Substring(23); Kết quả: Truong cao dang co gioi Ninh Binh Trích chuỗi con từ vị trí Startindex và có độ dài length String_name.Substring(int Start index, int length) Ví dụ: 127 string s1 = "Trung Tam Dao Tao CNTT Truong cao dang co gioi Ninh Binh"; string s3 = s1.Substring(18,4); Kết quả: CNTT Trình tự thực hiện Tạo Project mới Viết code hàm Main Biên dịch chương trình: Nhấn F6 Chạy chương trình: Nhấn F5 Sai hỏng thường gặp, ngun nhân và biện pháp phịng tránh/ khắc phục Sai hỏng thường gặp Ngun nhân Viết sai tên phương thức Biện pháp khắc phục: Sửa cho đúng tên phương thức 128 5. Chia chuỗi Để phân tích từ một chuỗi ra thành các chuỗi con ta dùng phương thức Split theo cú pháp sau: String_name.Split(char[] strarray_name) strarray_name là mảng các ký tự Chuỗi String_name sẽ được tách thành các chuỗi con khi gặp ký tự thuộc mảng strarray. Kết quả trả về là một mảng các chuỗi được tách ra Ví dụ: Tách các từ trong chuỗi: string s1 = "Trung Tam Dao Tao CNTT Truong cao dang co gioi Ninh Binh"; char[] strarray = new char[]{' ',','}; string strout=""; int ctr=1; foreach ( string subString in s1.Split(delimiters) ) { strout += ctr++; strout += ": "; strout += subString; strout += "\n"; } Kết quả là Trình tự thực hiện Tạo Project Viết code hàm Main 129 Biên dịch chương trình: Nhấn F6 Chạy chương trình: Nhấn F5 Sai hỏng thường gặp, ngun nhân và biện pháp phịng tránh/ khắc phục Sai hỏng thường gặp Ngun nhân 130 Viết sai tên phương thức Biện pháp khắc phục: Sửa cho đúng tên phương thức Bài tập Viết lớp hocsinh bao gồm các thuộc tính và phương thức sau: - Masv - Hoten - Diemtoan - Diemly - Diemhoa - Hàm tạo khơng đối, hàm tạo có đối - Phương thức nhập, hiển thị thơng tin Viết lớp dssv bao gồm các thuộc tính và phương thức sau: - Mảng ds kiểu hocsinh - Số học sinh - Phương thức nhập - Phương thức hiển thị - Phương thức tìm kiếm thơng tin học sinh theo tên 131 ... Mục tiêu: - Hiểu rõ về khơng gian tên (namespace); - Trình? ?bày được các kiểu dữ liệu? ?cơ? ?bản trong C#; - Trình? ?bày được các cú pháp: khai báo biến, khai báo hằng, các câu lệnh? ?cơ? ?bản trong C#; - Sử dụng thành thạo các kiểu dữ liệu dựng sẵn của C#;... Mục tiêu: - Trình? ?bày được các bước xây dựng lớp, tạo đối tượng; - Trình? ?bày được các bước khai báo và sử dụng thành viên static; - Trình? ?bày được các bước nạp trồng tốn tử; - Xây dựng được lớp? ?cơ? ?bản theo u cầu;... trình? ?C#, là mơ đun hỗ trợ cho hai mơ đun? ?lập? ?trình? ?Windows 2 và? ?lập? ?trình? ? Windows 3. Tính chất Mơ đun này u cầu đã học qua các kiến thức về? ?lập? ?trình? ? hướng đối tượng, cấu trúc dữ liệu Ý nghĩa và vai trị của đun: