• Một ứng dụng C# gồm tập các class và struct • Một lớp gồm tập dữ liệu và phương thức. • Cú pháp[r]
(1)Lập trình Windows
(2)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
(3)(4)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 mới
• 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
(5)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
(6)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, …
(7)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
các 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 khơng phải trả giá chi phí thực thi
• Tăng cường kiểu liệu khác
• Các kiểu sở : Decimal, SQL…
(8)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 tồn kiểu (Type-safety)
• Khơng dùng biến chưa khởi tạo, ép kiểu (cast) không an
(9)Chương trình C# đầu tiên
using System;
class Program
{
static void Main(string[] args) {
(10)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
{
…
(11)Phương thức Main
• Phương thức Main định nghĩa lớp • Chú ý viết hàm Main
• Ký tự M phải viết HOA, “Main”
• Phải có hàm Main entry point chương trình • Khai báo Main: static void Main
(12)Dùng Directive System namespace
• .NET Framework cung cấp nhiều lớp tiện ích
• Các lớp tổ chức thành namespace
• System namespace dùng thơng dụng nhất
• Khi sử dụng lớp phải rõ lớp thuộc namespace nào
System.Console.WriteLine("Hello, World");
(13)Xuất liệu
• Nhập liệu từ bàn phím xuất liệu hình C# dùng phương thức tĩnh lớp: System.Console
void Console.Write(data);
void Console.WriteLine(data);
•Xu t d li u lên màn hìnhấ ữ ệ
(14)Xuất liệu
• Cú pháp 2:
void Console.Write(string format, params object[] arg);
void Console.WriteLine(string format, params object[] arg);
• Trong đó:
– format: chứa chuỗi định dạng
– arg mảng đối tượng xuất
(15)Xuất liệu
• format chuỗi bình thường có thêm hay nhiều
phần định dạng có cú pháp sau
• Cú pháp:
{index[,alignment][:formatString]}
– Trong đó:
§ index: Số thứ tự đối số, 0
(16)Nhập liệu
• Nhập liệu từ bàn phím
• Cú pháp:
int Console.Read();
(17)Nhập liệu – Chuyển kiểu liệu
• Để chuyển kiểu liệu sang kiểu liệu khác chúng ta dùng cú pháp sau
ã Cỳ phỏp
Kieu.Parse(chuoi);
ĐVớ d:
string s = “123”;
(18)Nhập liệu – Lớp Convert
Cung cấp phương thức static giúp chuyển đổi dữ liệu có kiểu khác
Phương th cứ Ý nghĩa
ToBoolean Chuy n m t giá tr sang giá tr Booleanể ộ ị ị
ToByte Chuy n m t giá tr sang giá tr s nguyên 8bit không d uể ộ ị ị ố ấ
ToChar Chuy n m t giá tr sang giá tr ký t unicodeể ộ ị ị ự
ToDateTime Chuy n m t giá tr sang giá tr DateTime.ể ộ ị ị
ToDecimal Chuy n m t giá tr sang giá tr Decimal.ể ộ ị ị
ToDouble Chuy n m t giá tr sang giá tr s th c có đ chính xác g p đơi 8 byteể ộ ị ị ố ự ộ ấ
ToInt16 Chuy n m t giá tr sang giá tr s nguyên 16bit có d uể ộ ị ị ố ấ
ToInt32 Chuy n m t giá tr sang giá tr só nguyên 32bit có d uể ộ ị ị ấ
ToInt64 Chuy n m t giá tr sang giá tr s nguyên 64bit có d uể ộ ị ị ố ấ
(19)(20)Từ khóa - keyword
abstract as base bool break byte case catch char checked class const continue decimal default delegat
e do double else enum event explicit extern false finally fixed float for foreach goto
if implicit in int interface internal is lock long namespace
new null object operator out override params private protected public
readonl