Giới thiệu về .NET và Visual StudioGiới thiệu về các kiến thức lập trình cơ bản trên ngôn ngữ C# Kiểu dữ liệu Toán tử Thao tác với chuỗi Cấu trúc điều khiển Phương thức Xử lý ngoại lệ Mụ
Trang 1Bài 1: Làm quen với C#
Trang 2Giới thiệu về NET và Visual Studio
Giới thiệu về các kiến thức lập trình cơ bản trên ngôn ngữ C#
Kiểu dữ liệu
Toán tử
Thao tác với chuỗi
Cấu trúc điều khiển
Phương thức
Xử lý ngoại lệ
Mục tiêu bài học
Giới thiệu về NET và Visual Studio
Giới thiệu về các kiến thức lập trình cơ bản trên ngôn ngữ C#
Kiểu dữ liệu
Toán tử
Thao tác với chuỗi
Cấu trúc điều khiển
Phương thức
Xử lý ngoại lệ
Trang 3Windows Forms là ứng dụng có giao diện đồ họa chạy trên hệ điều hành Windows
Windows Forms là ứng dụng chạy trên máy tính của người
Trang 4Kiến trúc NET
.NET Appliations
Visual Basic Visual C# Visual C++ Visual F#
.NET Framework
.NET Framework Class Library
Các lớp Windows Forms Các lớp ASP.NET Các lớp
khác
.NET Framework Class Library
Các lớp Windows Forms Các lớp ASP.NET Các lớp
Ứng dụng được quản lý Hệ thống kiểu thông dụng Ngôn ngữ trung
gian
Hệ điều hành và phần cứng
Windows XP Windows Vista Windows 7 Các hệ điều hành khác
Trang 5Ứng dụng Windows Forms không truy cập hệ điều hành hay phần cứng máy tính trực tiếp mà thông qua các dịch vụ của NET
Framework
.NET Framework gồm hai thành phần chính:
.NET Framework Class Library
Common Language Runtime
.NET Framework
Trang 6.NET Framework Class Library bao gồm thư viện các đoạn mã được
viết sẵn cung cấp các chức năng cần thiết khi lập trình
Các lớp Windows Forms được sử dụng để phát triển ứng dụng
.NET Framework Class Library
.NET Framework Class Library bao gồm thư viện các đoạn mã được
viết sẵn cung cấp các chức năng cần thiết khi lập trình
Các lớp Windows Forms được sử dụng để phát triển ứng dụng
Trang 7Common Language Runtime (CLR)
Trang 8CLR (Môi trường quản lý việc thi hành mã) cung cấp các dịch vụ cầnthiết để chạy ứng dụng được viết bằng ngôn ngữ NET
Tất cả các ngôn ngữ NET đều được biên dịch thành ngôn ngữ
trung gian (common intermediate language – CIL) hay còn được gọi
là mã được quản lý
Tất cả các ứng dụng NET đều được thực thi dưới sự dám sát của CLR (quản lý bộ nhớ, thực thi code, bảo mật ….), nên còn được gọi
là ứng dụng được quản lý
CRL cung cấp Hệ thống kiểu chung (Common Type System) định
nghĩa kiểu mà sẽ được sử dụng bởi tất cả các ngôn ngữ NET
Các chương trình viết bằng các ngôn ngữ NET khác nhau có thể
tương tác được với nhau
Common Language Runtime (CLR)
CLR (Môi trường quản lý việc thi hành mã) cung cấp các dịch vụ cầnthiết để chạy ứng dụng được viết bằng ngôn ngữ NET
Tất cả các ngôn ngữ NET đều được biên dịch thành ngôn ngữ
trung gian (common intermediate language – CIL) hay còn được gọi
là mã được quản lý
Tất cả các ứng dụng NET đều được thực thi dưới sự dám sát của CLR (quản lý bộ nhớ, thực thi code, bảo mật ….), nên còn được gọi
là ứng dụng được quản lý
CRL cung cấp Hệ thống kiểu chung (Common Type System) định
nghĩa kiểu mà sẽ được sử dụng bởi tất cả các ngôn ngữ NET
Các chương trình viết bằng các ngôn ngữ NET khác nhau có thể
tương tác được với nhau
Trang 10Ngôn ngữ trung gian (IL) được biên dịch từ file nguồn
Các tham chiếu đến các file thư viện mà ứng dụng gọi đến
Assembly có thể chạy trên PC được cài đặt CLR Khi assembly đượcchạy, CLR chuyển mã IL sang mã máy là mã có thể được chạy bằng
Ngôn ngữ trung gian (IL) được biên dịch từ file nguồn
Các tham chiếu đến các file thư viện mà ứng dụng gọi đến
Assembly có thể chạy trên PC được cài đặt CLR Khi assembly đượcchạy, CLR chuyển mã IL sang mã máy là mã có thể được chạy bằng
hệ điều hành
Trang 11So sánh C# với các ngôn ngữ lập trình NET khác
Giống
Cùng sử dụng chung các lớp NET Framework Tạo và làm việc với form, điều khiển, sử dụng csdl và làm việc trên cùng một IDE Visual Studio
So sánh C# với các ngôn ngữ lập trình NET khác
Giống
Cùng sử dụng chung các lớp NET Framework Tạo và làm việc với form, điều khiển, sử dụng csdl và làm việc trên cùng một IDE Visual Studio
Trang 12.NET ngày càng hoàn thiện và cung cấp nhiều tính năng cho ngườidùng hơn
Visual Studio 2010 tích hợp NET 4.0
Sự phát triển NET FrameWork
Trang 13Visual Studio 2010
Trang 14Visual Studio 2010
Visual Studio là một bộ sản phẩm gồm IDE và NET Framework
IDE để phát triển ứng dụng
.NET Framework cung cấp môi trường thực thi ứng dụng
Môi trường phát triển tích hợp
(IDE – Integrated Development Environment) Visual Studio 2010
Môi trường phát triển tích hợp
(IDE – Integrated Development Environment)
.NET FRAMEWORK
Trang 15Professional Phù hợp cho lập trình viên muốn phát triển các ứng dụng Window,
web hay mobile.
Premium Phù hợp với lập trình viên hay nhóm lập trình viên muốn phát triển
các ứng dụng có khả năng mở rộng Phiên bản này bao gồm các công
cụ hữu ích cho việc lập trình như công cụ kiểm thử, công cụ triển khai CSDL, công cụ quản lý thay đổi và công cụ quản lý vòng đời dự
án Tuy nhiên các công cụ này chỉ được hỗ trợ ở mức cơ bản.
Premium Phù hợp với lập trình viên hay nhóm lập trình viên muốn phát triển
các ứng dụng có khả năng mở rộng Phiên bản này bao gồm các công
cụ hữu ích cho việc lập trình như công cụ kiểm thử, công cụ triển khai CSDL, công cụ quản lý thay đổi và công cụ quản lý vòng đời dự
án Tuy nhiên các công cụ này chỉ được hỗ trợ ở mức cơ bản.
Trang 16Ngôn ngữ và nền tảng
Những ngôn ngữ lập trình chính được hỗ trợ bởi Visual Studio 2010
Ngôn ngữ Mô tả
Visual Basic Được thiết kế để phát triển ứng dụng nhanh chóng.
Visual C# Kết hợp các đặc tính của java và C++ và phù hợp với phát triển ứng
dụng nhanh chóng.
Visual C++ Phiên bản nâng cấp của C++.
Visual F# Kết hợp lập trình chức năng, thủ tục và hướng đối tượng.
Visual F# Kết hợp lập trình chức năng, thủ tục và hướng đối tượng.
Nền tảng có thể chạy Visual Studio 2010
Windows XP, Windows Vista, Windows 7 hoặc là những phiên bản mới hơn
Nền tảng có thể chạy ứng dụng được tạo bởi Visual Studio 2010
Windows 2000 hoặc mới hơn, phụ thuộc vào thành phần NET nào mà ứng dụng sử dụng
Trang 17IDE có thể sử dụng để phát triển ứng dụng viết bằng bất cứ ngônngữ nào trong 4 ngôn ngữ trên
.NET Framework cung cấp thư viện hỗ trợ cho cả 4 ngôn ngữ lập
trình
Khi cài đặt VisualStudio sẽ tự động cài SQL Server 2008 Express làphiên bản thu gọn của Microsoft SQL Server 2008
Visual Studio 2010
Trang 18KIỂU DỮ LIỆU
KIỂU DỮ LIỆU
Trang 19Cũng giống như VB, C# có hai kiểu dữ liệu
Dữ liệu kiểu giá trị
Tương ứng với kiểu Integer, Double… của Visual Basic
Dữ liệu kiểu tham chiếu
Tương ứng với kiểu String và Object … của Visual Basic
Kiểu dữ liệu
Trang 20Dữ liệu kiểu giá trị
C# keyword VB Bytes NET type
(structure)
Mô tả (Kiểu dữ liệu được hỗ trợ bởi NET 4)
byte Byte 1 Byte Số nguyên dương từ 0 đến 255
sbyte SByte 1 Sbyte Số nguyên có dấu từ -128 đến 127
short Short 2 Int16 Số nguyên từ -32.768 đến 32.767
ushort UShort 2 UInt16 Số nguyên dương từ 0 đến 65.535
int Integer 4 Int32 Số nguyên từ -2.147.483.648 đến +2.147.483.647
uint UInteger 4 UInt32 Số nguyên dương từ 0 đến 4.294.967.295
long Long 8 Int64 Số nguyên từ -9.223.327.036.854.775.808 đến
9.223.327.036.854.775.807 ulong ULong 8 UInt64 Số nguyên dương từ 0 đến 18.446.744.073.709.551.615 float Single 4 Single Số thập phân có 7 chữ số sau dấu phẩy
double Double 8 Double Số thập phân có 14 chữ số sau dấu phẩy
decimal Decimal 16 Decimal Số nguyên dương với 28 chữ số (gồm phần nguyên và
thập phân) char Char 2 Char Ký tự Unicode
bool Boolean 1 Boolean Giá trị đúng (true) hay sai (false)
Trang 21Dữ liệu kiểu giá trị bao gồm
Các kiểu dữ liệu lưu số
Lưu số nguyên: sbyte (1 byte), short (2 byte), int (4 byte), long
Dữ liệu kiểu giá trị
Dữ liệu kiểu giá trị bao gồm
Các kiểu dữ liệu lưu số
Lưu số nguyên: sbyte (1 byte), short (2 byte), int (4 byte), long
Trang 22C# keyword VB keyword NET type (Class) Mô tả
tượng nào
Dữ liệu kiểu tham chiếu
Tham chiếu đến bất kỳ kiểu đối tượng nào
Kiểu string là kiểu object được định nghĩa trước
Trang 23.NET định nghĩa các kiểu dữ liệu bởi Common Type System thuộc
Trang 24Khai báo và khởi tạo biến kiểu giá trị
Visual Basic
Khai báo và gán giá trị
Khai báo và gán giá trị trên cùng dòng
Khai báo và khởi tạo hằng
Khai báo và gán giá trị
Khai báo và gán giá trị trên cùng dòng
Khai báo và khởi tạo hằng
Khai báo và gán giá trị
Khai báo và gán giá trị trên cùng dòng
Khai báo và khởi tạo hằng
Khai báo và gán giá trị
Khai báo và gán giá trị trên cùng dòng
Khai báo và khởi tạo hằng
kieuBien tenBien = giaTri;
Trang 25C# hỗ trợ hai kiểu ép kiểu: Ép kiểu mở rộng và ép kiểu thu hẹp
double z = (a+b+c)/3; // Chuyển b, c từ int sang double
C# hỗ trợ hai kiểu ép kiểu: Ép kiểu mở rộng và ép kiểu thu hẹp
Chuyển từ kiểu có độ chính xác cao sang kiểu có độ chính xác thấp hơn
byte short int long decimal byte short int double
byte short float double
Trang 26Sử dụng phương thức ToString có sẵn trong mỗi cấu trúc
Sử dụng phương thức Parse có sẵn trong mỗi cấu trúc
string chuoiSoTien = soTien.ToString();
decimal soTien2 = Decimal.Parse(chuoiSoTien);
Sử dụng phương thức ToString có sẵn trong mỗi cấu trúc
Sử dụng phương thức Parse có sẵn trong mỗi cấu trúc
Sử dụng lớp Convert
Dùng phương thức này để chuyển kiểu cho tất cả các kiểu được xây dựng sẵn
decimal soTien3 = Convert.ToDecimal(chuoiSoTien);
string soTienStr = Convert ToString(soTien3);
Trang 27TOÁN TỬ
Trang 28C# cung cấp các toán tử và cách sử dụng các toán tử này giốngnhư Visual Basic
Toán tử số học
Toán tử Tên phép toán Mô tả
- Phép trừ Trừ toán hạng bên trái cho toán hạng bên phải
* Phép nhân Nhân toán hạng bên trái với toán hạng bên phải
- Dấu âm Chuyển giá trị dương thành giá trị âm và giá trị âm
thành giá trị dương
Trang 29Sử dụng các toán tử trong C# cũng tương tự như sử dụng các toán
tử trong Visual Basic
Trang 30Thứ tự ưu tiên giống như trong Visual Basic
1 Toán tử tăng (++) và toán tử giảm ( )
2 Toán tử dương (+) và toán tử âm (-)
3 Toán tử nhân (*), chia (/) và chia lấy dư (%)
Trang 31C# cung cấp các phép gán tương tự như Visual Basic
Toán tử gán
= Gán giá trị mới cho biến
+= Cộng giá trị của biến với toán hạng bên phải rồi gán kết quả cho biến
-= Lấy giá trị của biến trừ đi toán hạng bên phải rồi gán kết quả cho biến
*= Nhân biến với toán hạng bên phải rồi gán kết quả cho biến
/= Lấy giá trị của biến chia cho toán hạng bên phải rồi gán kết quả cho biến
%= Lấy giá trị của biến chia lấy dư cho toán hạng bên phải rồi gán kết quả
cho biến
Trang 32Sử dụng phép gán cũng tương tự như trong Visual Basic
x +=10; //x = 27c
Trang 33C# cung cấp các toán tử logic tương tự như Visual Basic
Tuy kí hiệu toán tử C# khác với Visual Basic nhưng việc sử dụng
chúng giống hệt nhau.
Toán tử logic
Trang 34C# cung cấp các toán tử tương tự như Visual Basic
Việc sử dụng các toán tử này cũng giống như trong Visual Basic
Lưu ý ký hiệu toán tử bằng và toán tử không bằng của hai ngôn
C# cung cấp các toán tử tương tự như Visual Basic
Việc sử dụng các toán tử này cũng giống như trong Visual Basic
Lưu ý ký hiệu toán tử bằng và toán tử không bằng của hai ngôn
Trang 35Cũng giống như Visual Basic, lớp Math cung cấp các phương thứcthao tác với dữ liệu kiểu số
Lớp Math
Math.Round (soThapPhan [,doChinhXac) Làm tròn chẵn.
Math.Pow(so, mu) Tính lũy thừa
Math.{Min|Max}(soThu1, soThu2) Tìm giá trị nhỏ nhất (lớn nhất) của hai số
Trang 37Khái niệm chuỗi (String) trong C# cũng giống như khái niệm chuỗitrong Visual Basic
Khai báo và khởi tạo chuỗi
Nối chuỗi
Thao tác với chuỗi
string a = “Xin chao” ; // Gán một chuỗi hằng cho string
string b = “”; // Gán chuỗi rỗng cho string
string c = null; // Gán giá trị null cho string
string c1 = “Nguyen Van ” + “ An”; // c1 = “Nguyen Van An”
string a = “Nguyen Van” ;
string b = “ An”;
string c2 = a + b; // c2 = “Nguyen Van An”
string c3 = a + “ An”; // c3 = “Nguyen Van An”
string c4 = “Nguyen Van” + 2; // c4 = “Nguyen Van2”
string a += “An”; // a = “Nguyen VanAn”
Khái niệm chuỗi (String) trong C# cũng giống như khái niệm chuỗitrong Visual Basic
Khai báo và khởi tạo chuỗi
Nối chuỗi
string c1 = “Nguyen Van ” + “ An”; // c1 = “Nguyen Van An”
string a = “Nguyen Van” ;
string b = “ An”;
string c2 = a + b; // c2 = “Nguyen Van An”
string c3 = a + “ An”; // c3 = “Nguyen Van An”
string c4 = “Nguyen Van” + 2; // c4 = “Nguyen Van2”
string a += “An”; // a = “Nguyen VanAn”
Trang 38Để thêm các ký tự đặc biệt vào chuỗi như ký tự tab, xuống dòng…
có hai cách
Sử dụng chuỗi thoát: \n, \t, \r, \\, \”…
Sử dụng chuỗi nguyên mẫu: Sử dụng @ trước chuỗi
Thao tác với chuỗi
string convat = “voi\tho\rga\tvit”;
chuoi convat sẽ có định dạng như sau:
string convat = “voi\tho\rga\tvit”;
chuoi convat sẽ có định dạng như sau:
Chú ý: Đối với chuỗi nguyên mẫu, sử dụng dấu “” khi muốn thêm dấu “
(vd: @”Nhan “”x”” de thoat” sẽ hiển thị Nhan “x” de thoat)
Trang 39Giống như VB, C# cung cấp các định dạng hiển thị
Sử dụng phương thức ToString
Định dạng hiển thị
Code Định dạng Giải thích
C hoặc c Currency Hiển thị tiền tệ
P hoặc p Percent Hiện thị phần trăm
N hoặc n Number Hiển thị số có ký tự phân tách (123,345.34)
F hoặc f Float Hiển thị số thập phân
D hoặc d Digits Hiển thị số nguyên (123345.34)
Giống như VB, C# cung cấp các định dạng hiển thị
Sử dụng phương thức ToString
D hoặc d Digits Hiển thị số nguyên (123345.34)
E hoặc e Exponential Hiển thị số theo ký pháp khoa học (E)
G hoặ g General Hiển thị số thập phân theo cách thông thường hoặc ký pháp khoa học
Trang 41C# cung cấp các cấu trúc điều khiển giống như Visual Basic
Cấu trúc tuần tự
Cấu trúc lựa chọn
Cấu trúc lựa chọn đơn Cấu trúc lựa chọn kép Cấu trúc đa lựa chọn
Cấu trúc lặp
Cấu trúc lặp biết số vòng lặp Cấu trúc lặp không biết số vòng lặp
Việc sử dụng các cấu trúc này giống như Visual Basic chỉ khác nhau
về cú pháp
Cấu trúc điều khiển
C# cung cấp các cấu trúc điều khiển giống như Visual Basic
Cấu trúc tuần tự
Cấu trúc lựa chọn
Cấu trúc lựa chọn đơn Cấu trúc lựa chọn kép Cấu trúc đa lựa chọn
Cấu trúc lặp
Cấu trúc lặp biết số vòng lặp Cấu trúc lặp không biết số vòng lặp
Việc sử dụng các cấu trúc này giống như Visual Basic chỉ khác nhau
về cú pháp
Trang 42Display.Text = “Đỗ”;
}
Trang 48Dim sum As Integer = 0
For i As Integer = 1 To 5 Step 1
Trang 49break: Khi gặp lệnh này sẽ thoát ra khỏi vòng lặp
continue: Khi gặp lệnh này sẽ bỏ qua các câu lệnh sau nó và thựchiện vòng lặp tiếp theo
Lệnh break và continue trong vòng lặp
break: Khi gặp lệnh này sẽ thoát ra khỏi vòng lặp
continue: Khi gặp lệnh này sẽ bỏ qua các câu lệnh sau nó và thựchiện vòng lặp tiếp theo
Trang 50PHƯƠNG THỨC
PHƯƠNG THỨC
Trang 51Visual Basic cung cấp hai kiểu cú pháp cho thủ tục (phương thức)
Phương thức Sub (không trả về giá trị)
Phương thức Function (trả về giá trị)
C# chỉ cung cấp một cú pháp duy nhất cho phương thức
Visual Basic cung cấp hai kiểu cú pháp cho thủ tục (phương thức)
Phương thức Sub (không trả về giá trị)
Phương thức Function (trả về giá trị)
C# chỉ cung cấp một cú pháp duy nhất cho phương thức
(Private|Public) Function tenthutuc (ByVal thamso1As kieuthamso) As kieutrave
//Thân thủ tục
End Sub
(private|public) kieutrave tenphuongthuc (kieubienthamso thamso1) {
Trang 52Cú pháp
Phương thức không trả về giá trị
Phương thức trả về giá trị và có tham số
Phương thức không trả về giá trị
Phương thức trả về giá trị và có tham số
Trang 53Cú pháp gọi đến phương thức cũng tương tự như Visual Basic
[Me.] tenphuongthuc ([danhsachthamso])
[this.] tenphuongthuc ([danhsachthamso])
Cú pháp gọi đến phương thức cũng tương tự như Visual Basic
Trang 54Theo mặc định, đối số được truyền theo giá trị
Để truyền đối số theo tham chiếu, sử dụng từ khóa ref
Truyền tham số theo tham chiếu và tham trị
private void Form1_Load(object sender, EventArgs e)
{
int x = 10;
int y = 5;
doiGiaTri(ref x, ref y);
MessageBox.Show( "x = " + x + "\ny= " + y);
doiGiaTri(ref x, ref y);
MessageBox.Show( "x = " + x + "\ny= " + y);