Devwork.vn xin giới thiệu tài liệ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ệ
2. 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#
2
Mục tiêu bài họ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ệ
Làm quen với C#
3. Windows Forms là ứng dụng có giao diện đồ họa chạy trên hệ
điều hành Windows
Ứng dụng Windows Forms
Windows Forms là ứng dụng chạy trên máy tính của người
dùng
Khác với Web Forms là ứng dụng chạy trên Web Forms. Khi ứng
dụng chạy thì hiển thị kết quả lên trình duyệt
Windows Forms là một phần của kiến trúc .NET
Làm quen với C# 3
4. Kiến trúc .NET
.NET
Appliati
ons
4
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 Common Language Runtime
Hệ thống kiểu thôngdụng Ngôn ngữ trungỨng dụng được quản lý
gian
Windows XP
Hệ điều hành và phần cứng
Windows Vista Windows 7 Các hệ điều hành khác
Làm quen với C#
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
Làm quen với C# 5
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.
6
.NET Framework Class Library
Các lớp Windows Forms được sử dụng để phát triển ứng dụng
Windows Forms
Các lớp ASP.NET được sử dụng để phát triển các ứng dụng Web
Forms.
Những lớp khác hỗ trợ lập trình với CSDL, quản lý bảo mật, truy
xuất file
Các lớp của .NET Framework Class Library được tổ chức thành cấu
trúc phân nhóm
Các lớp liên quan đến nhau được gom thành một nhóm gọi là
namespace
Mỗi namespace bao gồm các lớp được sử dụng cho một chức năng cụ
thể
namespace System.Windows.Forms chứa các lớp sử dụng để tạo form
namespace System.Data chứa các lớp sử dụng để truy cập dữ liệu
Làm quen với C#
7. Common Language Runtime (CLR)
CIL code
Visual C#
Visual Basic
bộ biên dịch C#
bộ biên dịch VB
bộ biên dịch C++
MÃ MÁY
Mã nguồn Mã được quản lý Mã máy
CLR
bộ biên dịch F#
Visual C++
Visual F#
Giai đoạn biên dịch Giai đoạn chạy
Nguồn: Wikipedia 1
Làm quen với C# 7
8. CLR (Môi trường quản lý việc thi hành mã) cung cấp các dịch vụ cần
thiết để chạy ứng dụng được viết bằng ngôn ngữ .NET
8
Common Language Runtime (CLR)
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
Làm quen với C#
9. Biên dịch và chạy một ứng dụng
Visual Studio
IDE Bộ biên dịch
.NET Framework
CLR
H
ệ
đi
ề
u
hà
nh
9
5
Solution
Project
File nguồn
Assembly
IL
Tham chiếu
đến các lớp
1 2 43
Ứng dụng
được triển
khai
Làm quen với C#
10. Quá trình biên dịch
Làm quen với C# 10
Biên dịch và chạy một ứng dụng
Sử dụng Visual Studio để tạo project (ứng dụng). Project gồm các
file mã nguồn, ngoài ra còn có file nhạc, ảnh, văn bản…
Biên dịch mã nguồn C# bằng bộ biên dịch mã. Kết quả sau khi biên
dịch là assembly
Assembly gồm
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 được
chạy, CLR chuyển mã IL sang mã máy là mã có thể được chạy bằng
hệ điều hành
11. So sánh C# với các ngôn ngữ lập trình .NET khác
Làm quen với C# 11
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
Khác:
Cú pháp
So sánh C# với Java
Giống:
Có cú pháp gần giống nhau
Khác
Framework
IDE
12. .NET ngày càng hoàn thiện và cung cấp nhiều tính năng cho người
dùng hơn
Visual Studio 2010 tích hợp .NET 4.0
Sự phát triển .NET FrameWork
Làm quen với C# 12
14. Visual Studio 2010
Visual Studio là một bộ sản phẩm gồm IDE và .NET Framework
Làm quen với C# 14
IDE để phát triển ứng dụng
.NET Framework cung cấp môi trường thực thi ứng dụng
Visual Studio 2010
Môi trường phát triển tích hợp
(IDE – Integrated Development Environment)
.NET FRAMEWORK
15. Visual Studio 2010
Các phiên bản của Visual Studio 2010
Phiên bản Mô tả
Express Miễn phí, chỉ hỗ trợ một trong các ngôn ngữ .NET. Phù hợp chosinh
viên.
Professional 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.
Ultimate Thiết kế cho nhóm lập trình viên, hỗ trợ phiên bản đầy đủ của các
công cụ lập trình như công cụ kiểm thử, công cụ mô hình hóa,công
cụ CSDL và công cụ quản lý vòng đời dự án.
Làm quen với C# 15
16. Ngô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.
Nền tảng có thể chạy Visual Studio2010
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 Studio2010
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
Làm quen với C# 16
17. IDE có thể sử dụng để phát triển ứng dụng viết bằng bất cứ ngôn
ngữ 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
Làm quen với C# 17
19. Cũng giống như VB, C# có hai kiểu dữ liệu
Làm quen với C# 19
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
Kiểu giá trị Kiểu tham chiếu
20. Dữ 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 đến32.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
Làm quen với C# 20
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)
21. Dữ liệu kiểu giá trị bao gồm
21
Dữ liệu kiểu giá trị
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
(8 byte)
Lưu số nguyên dương: byte (1), ushort (2), uint (4), ulong (8)
Lưu số thập phân: float (4), double (8), decimal (16)
Các kiểu dữ liệu lưu ký tự
char
Các kiểu dữ liệu lưu giá trị đúng sai
bool
Lưu ý rằng mỗi kiểu dữ liệu lưu một giải giá trị khác nhau nên tùy
vào trường hợp sử dụng để sử dụng kiểu dữ liệu phù hợp
Làm quen với C#
22. Dữ liệu kiểu tham chiếu
C# keyword VB keyword .NET type (Class) Mô tả
string String String Tham chiếu đến đối tượng String
object Object Object 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
Làm quen với C# 22
23. .NET định nghĩa các kiểu dữ liệu bởi Common Type System thuộc
CLR
23
Kiểu dữ liệu
Mỗi ngôn ngữ .NET sẽ có kiểu dữ liệu tương ứng với kiểu được định
nghĩa trong CTS
Sau khi biên dịch các kiểu này sẽ được chuyển về kiểu CTS tương
ứng
Mã nguồn Mã trung gian (CIL) Mã máy
Integer
(CTS)
int
Integer
bộ biên dịch C#
bộ biên dịch VB
MÃ MÁY
Giai đoạn biên dịch Giai đoạn chạy
CLR
Làm quen với C#
24. Khai báo và khởi tạo biến kiểu giá trị
Visual Basic
u Khai báo và gán giá trị
u Dim tenBien As kieuBien
tenBien = giaTri
u Dim x As Integer
x = 1
u Khai báo và gán giá trị trên cùng dòng
u Dim tenBien As kieuBien = giaTri
u Dim x As Integer = 1
u Khai báo và khởi tạo hằng
u const tenHang As kieuBien = giaTri
u const x As Integer = 5
u Chú ý: Tên biến đặt theo ký pháp lạc đà 24
Visual C#
Khai báo và gán giá trị
kieuBien tenBien;
tenBien = giaTri;
int x;
Sau mỗi câu lệnh đều
có dấu chấm phẩy
x = 1;
Khai báo và gán giá trị trên cùng dòng
kieuBien tenBien = giaTri;
int x = 1;
Khai báo và khởi tạo hằng
const kieuBien tenHang = giaTri;
const int x = 5;
Làm quen với C#
25. C# hỗ trợ hai kiểu ép kiểu: Ép kiểu mở rộng và ép kiểu thu hẹp
Ép kiểu mở rộng
25
Ép kiểu
Chuyển từ kiểu có độ chính xác bé sang kiểu có độ chính xác lớn hơn
Cũng như Visual Basic, C# tự động ép kiểu mở rộng
double a = 2 ; // Chuyển từ int sang double
int b = 3, c = 4;
double z = (a+b+c)/3; // Chuyển b, c từ int sang double
C# tự động chuyển từ kiểu bên trái sang bên phải
Chuyển từ kiểu có độ chính xác cao sang kiểu có độ chính xác thấp hơn
Phải ép kiểu tường minh cho các phép ép kiểu thu hẹp
byte à short à int à long à decimal
byte à short à int à double
byte à short à float à double
Ép kiểu thu hẹp
// (a = 2) Chuyển từ double sang intint a = (int)2.5 ;
int b = 3, c = 4;
double z = ((int)a+b+c)/3; // (z = 3)
//Chuyển a sang kiểu int sau đó mới thực hiện tính toán
float à decimal
Làm quen với C#
26. Sử dụng phương thức ToString có sẵn trong mỗi cấu trúc
26
Sử dụng phương thức để ép kiểu
decimal
string
soTien = 20.00m;
chuoiSoTien = soTien.ToString();
Sử dụng phương thức Parse có sẵn trong mỗi cấu trúc
decimal soTien2 = Decimal.Parse(chuoiSoTien);
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
string
soTien3 = Convert.ToDecimal(chuoiSoTien);
soTienStr = Convert .ToString(soTien3);
Làm quen với C#
28. C# cung cấp các toán tử và cách sử dụng các toán tử này giống
như Visual Basic
28
Toán tử số học
Toán tử Tên phép toán Mô tả
+ Phép cộng Cộng hai toán hạng
- 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
i / Phép chia Chia toán hạng bên trái cho toán hạng bên phải
% Phép chia lấy dư Chia lấy dư toán hạng bên trái cho toán hạng bên
phải
+ Dấu dương Trả về giá trị của toánhạng
- Dấu âm Chuyển giá trị dương thành giá trị âm và giá trị âm
thành giá trị dương
++ Phép tăng Tăng toán hạng lên 1
-- Phép giảm Trừ toán hạng đi 1
Toán
tử ha
ngôi
Toán
tử
một
ngôi
Làm quen với C#
29. Sử 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
29
Demo sử dụng toán tử
int x = 14;
int y = 8;
//Tính toán với số nguyên //Tính toán với số thập phân
decimal a = 8.5m;
decimal b = 3.4m;
int z1 = x + y; //z1 = 22 decimal c1 = a + b; //c1 = 11.9
int z2 = x - y; //z2 = 6 decimal c2 = a - b; //c2 = 5.1
int z3 = x * y; //z3 = 112 decimal c3 = a * b; //c3 = 28.90
int z4 = x / y; //z4 = 1 decimal c4 = a / b; //c4 = 2.5
int z5 = x % y; //z5 = 6 decimal c5 = a % b; //c5 = 1.7
int z6 = -x + y; //z6 = 6 decimal c6 = -a + b; //c6 = -8.5
int z7 = --y; //z7 = 7, y = 7 decimal c7 = --a; //c7 = 7.5, a = 7.5
int z8 = ++y; //z8 = 15, x = 15 decimal z8 = ++b; //c8 = 4.4, b = 4.4
//Tính toán với kiểu ký tự
char letter1 = ‘C’;
char letter2 = ++letter1;
//letter1 = ‘C’
//letter2 = ‘D’
Làm quen với C#
30. Thứ tự ưu tiên giống như trong Visual Basic
Làm quen với C# 30
Thứ tự ưu tiên
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ư (%)
4. Toán tử cộng (+) và trừ (-)
Dùng dấu ngoặc để thay đổi thứ tự ưu tiên
decimal phanTramChietKhau = 0.2 m;
decimal gia = 100m;
gia = gia * (1 - phanTramChieuKhau);
31. C# cung cấp các phép gán tương tự như Visual Basic
Toán tử gán
Toán tử Mô tả
= 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
Làm quen với C# 31
32. Sử dụng phép gán cũng tương tự như trong Visual Basic
Làm quen với C# 32
Sử dụng toán tử gán
Cú pháp
tenBien = bieuThuc
Ví dụ
//Phép gán thông thường
x = 7 ; //bieuThuc là một giá trị
y = x ; //bieuThuc là một biến
z = x * y + 3; //bieuThuc là một biểu thức số học
//Sử dụng cùng một biến trên hai phía của phép gán
x = x + 10; //x = 17
//Sử dụng toán tử gán rút gọn
x +=10; //x = 27c
33. C# 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.
Làm quen với C# 33
Toán tử logic
Toán tử VB Toán tử C# Tên
AndAlso && Và tối ưu
OrElse || Hoặc tối ưu
And & Và
Or I Hoặc
Not ! Not
(x < 20) && (x >10) //Tương tự như (x<20) AndAlso (x>10) trong Vb
34. 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 ngữ khác nhau
Làm quen với C# 34
Toán tử quan hệ
Toán tử VB Toán tử C# Tên
= == Bằng
<> != Không bằng
> > Lớn hơn
< < Bé hơn
>= >= Lớn hơn hoặc bằng
<= <= Bé hơn hoặc bằng
int x = 50;
x >= 50 ; //Trả về true vì x = 50
35. Cũng giống như Visual Basic, lớp Math cung cấp các phương thức
thao tác với dữ liệu kiểu số
Lớp Math
Phương thức Giải thích
Math.Round (soThapPhan [,doChinhXac) Làm tròn chẵn.
Math.Pow(so, mu) Tính lũy thừa
Math.Sqrt(so) Tính căn
Math.{Min|Max}(soThu1, soThu2) Tìm giá trị nhỏ nhất (lớn nhất) của haisố
Làm quen với C# 35
37. Khái niệm chuỗi (String) trong C# cũng giống như khái niệm chuỗi trong
Visual Basic
Khai báo và khởi tạo chuỗi
Làm quen với C# 37
Thao tác với chuỗi
string a = “Xin chao” ; // Gán một chuỗi hằng cho string
string b = “”;
string c = null;
Nối chuỗi
// Gán chuỗi rỗng cho string
// Gán giá trị null cho string
string c1 = “Nguyen Van ” + “ An”; // c1 = “Nguyen VanAn”
string a
string b
string c2 =
string c3 =
= “Nguyen Van” ;
= “ An”;
a + b;
a + “ An”;
string c4 = “Nguyen Van” + 2;
string a += “An”;
// c2 = “Nguyen VanAn”
// c3 = “Nguyen VanAn”
// c4 = “Nguyen Van2”
// a = “Nguyen VanAn”
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
Làm quen với C# 38
Thao tác với chuỗi
Sử dụng chuỗi thoát: n, t, r, , ”…
string convat = “voithorgatvit”;
chuoi convat sẽ có định dạng như sau:
voi
ga
ho
vit
Sử dụng chuỗi nguyên mẫu: Sử dụng @ trước chuỗi
string convat = @”voi ho
ga vit”;
chuoi convat sẽ có định dạng như
sau:
voi
ga
ho
vit
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)
39. Giống như VB, C# cung cấp các định dạng hiển thị
Làm quen với C# 39
Đị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ậpphân
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 khoahọc
//$123.12
Sử dụng phương thức ToString
decimal sotien = 123.12;
string sotienFormat = sotien.ToString(“c”);
Sử dụng phương thức Format của lớp String
string sotienFormat2 = String.Format(“{0:c}”, sotien) ; //$123.12
41. C# cung cấp các cấu trúc điều khiển giống như Visual Basic
Làm quen với C# 41
Cấu trúc điều khiển
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
42. Lệnh lựa chọn đơn
Visual Basic
Cú pháp
If (bieuthucdieukien) Then
//Thân lệnh
End If
C#
Cú pháp
if (bieuthucdieukien){
//Thân lệnh
}
Ví dụ
If diem>6 Then
Display.Text = “Đỗ”
End If
Ví dụ
if (diem>6)
{
Display.Text = “Đỗ”;
}
Làm quen với C# 42
43. Lệnh lựa chọn kép
Visual Basic
Cú pháp
If (bieuthucdieukien) Then
//Thân lệnh
Else
//Thân lệnh
End If
Ví dụ
If diem>4 Then
Display.Text = “Đỗ”
Else
Display.Text = “Trượt
End If
C#
Cú pháp
If (bieuthucdieukien){
//Thân lệnh
}
else{
//Thân lệnh
}
Ví dụ
If diem>6 {
Display.Text = “Đỗ”
}else{
Display.Text = “Đỗ”
}
Làm quen với C# 43
44. Lệnh đa lựa chọn
Visual Basic
u C#
u Cú pháp
u switch(bieuthucdieukien)
u {
u case giatri:
u //Thân mệnh đề break;
u …
u case giatri:
u //Thân mệnh đề break;
u default:
u //Thân mệnh đề break;
u }
Làm quen với C# 44
Cú pháp
Select Case (bieuthucdieukien) Case
giatri
//Thân mệnh đề
…
Case giatri
//Thân mệnh đề Case
Else
//Thân mệnh đề End
Select
45. Lệnh đa lựa chọnVisual Basic
Làm quen với C# 45
= "Rất tốt!"
= "Tốt!"
C#
Ví dụ
switch(diem)
{
case
case
“A”:
“B”:
= “Rất tốt!”;
= "Trượt."
= “Điểm không
Ví dụ
Select Case diem
Case "A", "B"
displayLabel.Text
Case "C", "D"
displayLabel.Text
Case "F"
displayLabel.Text
Case Else
displayLabel.Text
End Select
case
case
hợp lệ." = “Tốt!”;
case
= “Trượt.”;
displayLabel.Text
break;
“C”:
“D”:
displayLabel.Text
break;
“F”:
displayLabel.Text
break;
= “Diem khonghop le.
default:
displayLabel.Text
break;
}
46. Lệnh lặp while
Visual Basic
Làm quen với C# 46
Cú pháp
Do While (bieuthucdieukien)
//Thân lệnh
Loop
C#
Cú pháp
while (bieuthucdieukien){
//Thân lệnh
}
Ví dụ
Dim sum As Integer = 0
Dim i As Integer = 1
Do While i <= 5
sum = sum + i
i = i + 1
Loop
Ví dụ
int sum = 0;
int i = 1;
while (i <= 5){
sum = sum + i;
i++;
}
Lưu ý: Lệnh while kiểm tra biểu thức điều kiện rồi mới thực hiện lệnh trong
vòng lặp
47. Lệnh lặp do while
Visual Basic
Làm quen với C# 47
Cú pháp
Do
//Thân lệnh
Loop While (bieuthucdieukien)
C#
Cú pháp
do {
//Thân lệnh
} while (bieuthucdieukien)
Ví dụ
Dim sum As Integer = 0
Dim i As Integer = 1
Do
sum = sum + i
i = i + 1
Loop While i <= 5
Ví dụ
int sum = 0;
int i = 1;
do{
sum = sum + i;
i++;
} while (i <= 5)
Lưu ý: Lệnh do while thực hiện lệnh trong vòng lặp rồi mới kiểm tra biểu
thức điều kiện
48. Cú pháp Visual Basic
Làm quen với C# 48
Lệnh for
For tenbiendieukhien As Integer = giatrikhoitao To giatricuoi Step buoctang
//Thân lệnh
Next
Cú pháp C#
for (giatrikhoitao ; bieuthuclogic ; bieuthuctang){
//Thân lệnh
}
Dim sum As Integer = 0
For i As Integer = 1 To 5 Step 1
{
sum += i
}
int sum = 0;
for (int i = 1; i<=5; i++)
{
sum += i;
}
49. break: Khi gặp lệnh này sẽ thoát ra khỏi vòng lặp
Lệnh break và continue trong 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ực
hiện vòng lặp tiếp theo
Làm quen với C# 49
51. Visual Basic cung cấp hai kiểu cú pháp cho thủ tục (phương thức)
Làm quen với C# 51
Phương thức
Phương thức Sub (không trả về giá trị)
(Private|Public) Sub tenthutuc (ByVal thamso1 As kieuthamso)
//Thân thủ tục
End Sub
Phương thức Function (trả về giá trị)
(Private|Public) Function tenthutuc (ByVal thamso1 As kieuthamso) As kieutrave
//Thân thủ tục
End Sub
C# chỉ cung cấp một cú pháp duy nhất cho phương thức
thamso1) {(private|public) kieutrave tenphuongthuc (kieubienthamso
//Thân thủ tục
}
Đối với hàm không trả về giá trị: kiểu trả về là void
52. Cú pháp
u (private|public) kieutrave tenphuongthuc (kieubienthamso
u //Thân thủ tục
u }
u Phương thức không trả về giá trị
u private void hienThi(string user, string pass)
u {
u txtUser.Text = user; txtPass.Text =
pass;
u }
u Phương thức trả về giá trị và có tham số
u private int binhPhuong(int x)
u {
u return x * x;
u }
Làm quen với C# 52
Phương thức trong C#
thamso1) {
53. Cú pháp gọi đến phương thức cũng tương tự như Visual Basic
Làm quen với C# 53
Gọi phương thức
Visual Basic
[Me.] tenphuongthuc ([danhsachthamso])
C#
[this.] tenphuongthuc ([danhsachthamso])
Ví dụ
Định nghĩa phương thức
private int binhPhuong(int x)
{
return x * x;
}
Gọi phương thức
int ketQua = this.binhPhuong(10);
54. Theo 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
Làm quen với C# 54
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);
}
private void doiGiaTri(ref int x, ref int y)
{
int z = x;
x = y;
y = z;
}
55. Tương tự Visual Basic, C# cũng cung cấp tham số tùy chọn cho
phương thức
Tham số tùy chọn trên Visual Basic
Làm quen với C# 55
Tham số tùy chọn
Private Function tinhLapPhuong( Optional ByVal x As Integer = 1, _
Optional ByVal y As Integer = 1, _
Optional ByVal z As Integer = 1 ) As Integer
Return x * y * z
End Function
Tham số tùy chọn trên C#
private tinhLapPhuong(decimal x = 1, decimal y =1, decimal z =1){
return x * y * z;
}
57. Xử lý lỗi
Chương trình nào cũng có khả năng gặp phải các tình huống không
mong muốn
Người dùng nhập dữ liệu không hợp lệ
File cần mở bị khóa
Lỗi chia cho 0
Khi gặp lỗi này máy tính sẽ dừng đột ngột
Điều gì sẽ xẩy ra nếu
Thao tác chuyển tiền của ngân hàng gặp lỗi và dừng đột ngột
Chương trình điều khiển máy bay gặp lỗi và dừng đột ngột
èCần phải có cơ chế xử lý lỗi này
è .NET đưa ra khái niệm xử lý ngoại lệ để xử lý những lỗi này
Làm quen với C# 57
58. Khi gặp lỗi không xử lý được, ứng dụng ném ra một ngoại lệ
Ngoại lệ
Ứng dụng ném ra ngoại lệ FormatExceptionvì
xẩy ra lỗi không ép kiểu thành công
Làm quen với C# 58
60. Một số phương thức có thể ném ra ngoại lệ
Ngoại lệ
Các thuộc tính/phương thức của đối tượng Exception
Lớp Phương thức Ngoại lệ
Convert ToDecimal(string) FormatException
Convert ToInt32(string) FormatException
Decimal Parse(string) FormatException
DateTime Parse(string) FormatException
Thuộc tính/Phương thức Mô tả
Message Thông báo mô tả ngắn gọn về
ngoại lệ
GetType() Lấy kiểu của ngoại lệ hiện tại
Làm quen với C# 60
61. Xử lý ngoại lệ
Sử dụng try catch để xử lý ngoại lệ
try
{
//Viết mã có khả năng có ngoại lệ ở đây
}
catch (Exception ex)
{
//Viết mã xử lý lỗi ở đây
}
Xử lý ngoại lệ
Máy tính sẽ chạy từng lệnh trong khối try
Nếu lệnh nào ném ra ngoại lệ, máy tính sẽ chuyển đến thực hiện
lệnh trong khối catch
Thực hiện xong lệnh trong khối catch, máy tính sẽ thực hiện lệnh
tiếp theo sau khối try-catch
Làm quen với C# 61
62. Demo xử lý ngoại lệ
try
{
decimal monthlyInvestment =
Convert.ToDecimal(txtMonthlyInvestment.Text)
;
decimal yearlyInterestRate =
Convert.ToDecimal(txtInterestRate.Text)
;
int years = Convert.ToInt32(txtYears.Text);
all entries.","Entry Error");
values.","Entry Error");
}
catch (FormatException)
{
MessageBox.Show(
"Invalid numeric format. Please check
}
catch (OverflowException)
{
MessageBox.Show(
"Overflow error. Please enter smaller
}
catch (Exception ex)
{
MessageBox.Show(
ex.Message + "nn" +
ex.GetType().ToString() + "n" +
ex.StackTrace, "Exception");
}
Làm quen với C# 62
63. Tổng kết bài học
Visual Studio gồm hai thành phần chính là IDE và .NET FrameWork.
Trong đó IDE để phát triển ứng dụng còn .NET FrameWork định
nghĩa môi trường thực thi
Ứng dụng Windows Form không chạy trực tiếp trên hệ điều hành
của máy tính mà thông qua .NET FrameWork
.NET Framework gồm hai thành phần chính là .NET Framework Class
Library và Common Language Runtime (CLR).
.NET Framwork 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
CLR cung cấp các dịch vụ cần thiết để chạy ứng dụng được viết
bằng ngôn ngữ .NET
Tất cả các ứng dụng viết bằng ngôn ngữ .NET đều được biên dịch
thành mã trung gian. Mã này được CLR chuyển thành mã máy để có
thể chạy trên hệ điều hành.
Ngôn ngữ C# chỉ khác Visual Basic về mặt cú pháp, còn về mặt hỗ
trợ lập trình thì giống nhau vì cùng dựa trên một FrameWork
Làm quen với C# 63
64. Tổng kết bài học
Giống như VB, kiểu dữ liệu trong C# cũng được chia thành hai loại
là kiểu dữ liệu giá trị và kiểu dữ liệu tham chiếu. String là kiểu dữ
liệu tham chiếu được xây dựng sẵn
C# cũng cung cấp các toán tử số học, toán tử gán, toán tử logic, và
toán tử quan hệ
C# cũng hỗ trợ 3 kiểu cấu trúc điều khiển là tuần tự, lựa chọn và
lặp
Không giống như VB có hai phương thức là phương thức Sub và
phương thức Function. C# chỉ cung cấp một kiểu cú pháp cho
phương thức, nếu giá trị trả về là void thì phương thức đó không trả
về giá trị
.NET hỗ trợ xử lý ngoại lệ để xử lý những đoạn mã có khả năng xẩy
ra lỗi
Đoạn mã có khả năng xẩy ra lỗi được đặt trong khối try, khối catch
chứa mã xử lý lỗi.
Làm quen với C# 64