Bài giảng Lập trình trên Windows Chương 2 Ngôn ngữ lập trình C cung cấp cho người học các kiến thức Tổng quan C, các thành phần cơ bản của ngôn ngữ, hệ thống kiểu trong .NET, namespace, các câu lệnh... Mời các bạn cùng tham khảo.
Lập trình Windows Chương Ngôn ngữ lập trình C# Phần Nội dung • Tổng quan C# • Các thành phần ngôn ngữ • Hệ thống kiểu NET • Namespace • Các câu lệnh • Lớp • Thừa kế • Property, Mảng Indexer • Lớp Collection • Interface • Delegate event handler • Xử lý Ngoại lệ 22 Tổng quan C# Tổng quan C# • C# (C-Sharp) ngôn ngữ lập trình Microsoft sáng tạo dựa ưu điểm C++, Java, Smalltalk bổ sung thêm phần • Các phiên ngôn ngữ C# • C# 1.0 cho NET Framework 1.0 (1.1) • C# 2.0 cho NET Framework 2.0 (3.0) • C# 3.0 cho NET Framework 3.5 • C# 4.0 cho NET Framework 4.0 • C# 5.0 cho NET Framework 4.5 • File source code C# có phần mở rộng cs Một chương trình gồm có hay nhiều file source code Tổng quan C# • Mục tiêu thiết kế C# • Ngôn ngữ hướng thành phần (Component-orientation) • Mọi thứ đối tượng • Tạo phần mềm mạnh bền Ngôn ngữ hướng thành phần • Ngôn ngữ hướng thành phần họ C/C++ • Khái niệm hướng thành phần • Properties, methods, events • Design-time run-time attributes • Tích hợp documentation XML • Cho phép one-stop programming • Không header files, IDL, … • Có thể nhúng trang ASP.NET Mọi thứ đối tượng • Quan điểm truyền thống • C++, Java™: Các kiểu sở (Primitive type) tương tác với object • Smalltalk, Lisp: Các kiểu sở object, phải trả giá chi phí thực thi • C# thống loại kiểu trả giá chi phí thực thi • Tăng cường kiểu liệu khác • Các kiểu sở : Decimal, SQL… • Collections, … làm việc tất kiểu Tạo phần mềm mạnh bền • Garbage collection (GC) • Không bị rò rỉ nhớ trỏ không truy cập bất hợp lệ • Ngoại lệ (Exception) • Cho phép xử lý ngoại lệ • An toàn kiểu (Type-safety) • Không dùng biến chưa khởi tạo, ép kiểu (cast) không an toàn Chương trình C# using System; class Program { static void Main(string[] args) { Console.WriteLine("Hello, World"); } } Lớp • Một ứng dụng C# gồm tập class struct • Một lớp gồm tập liệu phương thức • Cú pháp class ClassName { … } 10 Lớp sealed abstract • Lớp trừu tượng • Lớp trừu tượng lớp khai báo để làm lớp sở cho lớp khác Cú pháp Trừu tượng abstract class ClassName { … } 127 Lớp sealed abstract • Chú ý: • Lớp trừu tượng không cho tạo đối tượng • Khai báo phương thức trừu tượng lớp trừu tượng • Thành viên trừu tượng static • Phương thức Lớp trừu tượng private • Phương thức trừu tượng có modifier virtual 128 Lớp sealed abstract • Cú pháp: phương thức trừu tượng modifier abstract AbstractMethodName(); Hiện thực lớp trừu tượng Trừu tượng class ClassName:AbstractClassName { … modifier AbstractMethodName() {…} } 129 Lớp sealed abstract using System; abstract class BaseClass { public abstract void MethodA(); public void MethodB() { Console.WriteLine ("This is the non abstract method”); } } class DerivedClass : BaseClass { public override void MethodA() { Console.WriteLine ("This is the abstract method overriden in derived class"); } } 130 Lớp sealed abstract class AbstractDemo { public static void Main() { DerivedClass objDerived = new DerivedClass(); BaseClass objBase = objDerived; objBase.MethodA(); objDerived.MethodB(); } } 131 Lớp sealed abstract • Lớp sealed • Là lớp không dùng làm lớp sở • Lớp abstract dùng lớp sealed sealed class Point { public Point(int x, int y) { this.x = x; this.y = y; } public int x; public int y; } 132 Lớp static • Lớp static • Lớp static lớp chứa thành viên static, tạo instance lớp static lớp static nạp tự động CLR • Đặc điểm lớp static • Chỉ chứa thành viên static • Không thể tạo đối tượng • Là lớp sealed • Không chứa instance constructor 133 Lớp static static class CompanyInfo { public static string GetCompanyName() { return "CompanyName"; } public static string GetCompanyAddress() { return "CompanyAddress"; } // } 134 Bài tập Trong công ty X, nhân viên thuộc phân gọi là: nhân viên kinh doanh nhân viên sản xuất Thông tin nhân viên gồm: Mã nhân viên, họ tên Cách tính lương cho nhân viên phận sau: • Nhân viên kinh doanh: Ngoài mức lương hàng tháng, nhân viên nhận thêm 500.000/ hợp đồng ký kết • Nhân viên sản xuất: Lương nhân viên sản xuất tính theo số lượng sản phẩm x 1000 Nếu làm 3000 sản phẩm thưởng thêm 5% lương Viết chương trình tính lương cho nhân viên 135 Định nghĩa phương thức sau class NhanVienSanXuat:NhanVien { private int soSanPham; public override void Nhap() { //Định nghĩa } public override void TinhLuong() { //Định nghĩa } } Định nghĩa phương thức sau class NhanVienKinhDoanh:NhanVien { private int luongCB; private int soHDDaKy; public override void TinhLuong() { //Định nghĩa } } Cài đặt phương thức sau class DanhSachNhanVien { List listNhanVien; public void Nhap() { //Định nghĩa } } Bài tập nhà Bổ sung properties, constructors, phương thức cần thiết khác lớp Viết phương thức Main() để chạy thử nghiệm kết 140 Q&A 141 141 ... nguyên 16-bit có dấu ToInt 32 Chuyển giá trị sang giá trị só nguyên 3 2- bit có dấu ToInt64 Chuyển giá trị sang giá trị số nguyên 64-bit có dấu ToSByte Chuyển giá trị sang giá trị số nguyên 8-bit có... nguyên 16-bit không dấu ToUInt 32 Chuyển giá trị sang giá trị số nguyên 3 2- bit không dấu ToUInt64 Chuyển giá trị sang giá trị số nguyên 64-bit không dấu 18 Các thành phần ngôn ngữ Từ khóa - keyword... Lớp Collection • Interface • Delegate event handler • Xử lý Ngoại lệ 22 Tổng quan C# Tổng quan C# • C# (C-Sharp) ngôn ngữ lập trình Microsoft sáng tạo dựa ưu điểm C++, Java, Smalltalk bổ sung thêm