SlideShare a Scribd company logo
1 of 65
Download to read offline
LẬP TRÌNH C#
BÀI 1: Làm quen với 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#
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#
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
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#
Ứ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
.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#
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
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#
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#
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
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
.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
Visual Studio 2010
Làm quen với C# 13
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
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
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
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
KIỂU DỮ LIỆU
Làm quen với C# 18
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
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)
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#
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
.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#
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#
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#
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#
TOÁN TỬ
27
Làm quen với C#
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#
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#
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);
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
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
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
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
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
THAO TÁC
VỚI CHUỖI
Làm quen với C# 36
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”
Để 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)
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
CẤU TRÚC
ĐIỀU KHIỂN
Làm quen với C# 40
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
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
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
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
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;
}
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
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
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;
}
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
PHƯƠNG
THỨC
Làm quen với C# 50
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
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) {
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);
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;
}
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;
}
XỬ LÝ
NGOẠI LỆ
Làm quen với C# 56
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
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
Exception
FormatException ArithmeticException
Cây phân cấp ngoại lệ
OverflowException
Tất cả các ngoại lệ đều là lớpcon
của Exception
DivideByZeroException
Làm quen với C# 59
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
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
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
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
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
1. http://en.wikipedia.org/wiki/Common_Language_Runtime
Danh sách tham khảo
Làm quen với C# 65

More Related Content

What's hot

PHÂN TÍCH THIẾT KẾ HỆ THỐNG BÁN HÀNG QUA MẠNG
PHÂN TÍCH THIẾT KẾ HỆ THỐNG BÁN HÀNG QUA MẠNGPHÂN TÍCH THIẾT KẾ HỆ THỐNG BÁN HÀNG QUA MẠNG
PHÂN TÍCH THIẾT KẾ HỆ THỐNG BÁN HÀNG QUA MẠNG
Thùy Linh
 
Phân tích thiết kế hệ thống thông tin
Phân tích thiết kế hệ thống thông tinPhân tích thiết kế hệ thống thông tin
Phân tích thiết kế hệ thống thông tin
huynhle1990
 
Báo Cáo Đồ Án 2 : Thiết Kế Web Bán Đồng Hồ
Báo Cáo Đồ Án 2 : Thiết Kế Web Bán Đồng HồBáo Cáo Đồ Án 2 : Thiết Kế Web Bán Đồng Hồ
Báo Cáo Đồ Án 2 : Thiết Kế Web Bán Đồng Hồ
zDollz Lovez
 
lý thuyết cơ sở dữ liệu phân tán
lý thuyết cơ sở dữ liệu phân tánlý thuyết cơ sở dữ liệu phân tán
lý thuyết cơ sở dữ liệu phân tán
Ngo Trung
 

What's hot (20)

Giáo trình phân tích thiết kế hệ thống thông tin
Giáo trình phân tích thiết kế hệ thống thông tinGiáo trình phân tích thiết kế hệ thống thông tin
Giáo trình phân tích thiết kế hệ thống thông tin
 
PHÂN TÍCH THIẾT KẾ HỆ THỐNG BÁN HÀNG QUA MẠNG
PHÂN TÍCH THIẾT KẾ HỆ THỐNG BÁN HÀNG QUA MẠNGPHÂN TÍCH THIẾT KẾ HỆ THỐNG BÁN HÀNG QUA MẠNG
PHÂN TÍCH THIẾT KẾ HỆ THỐNG BÁN HÀNG QUA MẠNG
 
Báo cáo đồ án - Thiết kế web tại Thanh Hóa
Báo cáo đồ án - Thiết kế web tại Thanh HóaBáo cáo đồ án - Thiết kế web tại Thanh Hóa
Báo cáo đồ án - Thiết kế web tại Thanh Hóa
 
Phân tích thiết kế hệ thống thông tin
Phân tích thiết kế hệ thống thông tinPhân tích thiết kế hệ thống thông tin
Phân tích thiết kế hệ thống thông tin
 
Bai tap thuc hanh
Bai tap thuc hanhBai tap thuc hanh
Bai tap thuc hanh
 
Thiết kế csdl quản lý nhân sự
Thiết kế csdl quản lý nhân sựThiết kế csdl quản lý nhân sự
Thiết kế csdl quản lý nhân sự
 
Phân tích và thiết kế hệ thống quản lý bán hàng
Phân tích và thiết kế hệ thống quản lý bán hàngPhân tích và thiết kế hệ thống quản lý bán hàng
Phân tích và thiết kế hệ thống quản lý bán hàng
 
Slide Hệ Quản Trị Cơ sở dữ liệu - CHƯƠNG 1
Slide Hệ Quản Trị Cơ sở dữ liệu - CHƯƠNG 1Slide Hệ Quản Trị Cơ sở dữ liệu - CHƯƠNG 1
Slide Hệ Quản Trị Cơ sở dữ liệu - CHƯƠNG 1
 
Bài giảng Công Nghệ Phần Mềm
Bài giảng Công Nghệ Phần MềmBài giảng Công Nghệ Phần Mềm
Bài giảng Công Nghệ Phần Mềm
 
Báo Cáo Đồ Án 2 : Thiết Kế Web Bán Đồng Hồ
Báo Cáo Đồ Án 2 : Thiết Kế Web Bán Đồng HồBáo Cáo Đồ Án 2 : Thiết Kế Web Bán Đồng Hồ
Báo Cáo Đồ Án 2 : Thiết Kế Web Bán Đồng Hồ
 
Đề tài: Xây dựng phần mềm quản lý quán cà phê, HOT, 9đ
Đề tài: Xây dựng phần mềm quản lý quán cà phê, HOT, 9đĐề tài: Xây dựng phần mềm quản lý quán cà phê, HOT, 9đ
Đề tài: Xây dựng phần mềm quản lý quán cà phê, HOT, 9đ
 
Đồ án kiểm thử phần mềm
Đồ án kiểm thử phần mềmĐồ án kiểm thử phần mềm
Đồ án kiểm thử phần mềm
 
Phân tích thiết kế hệ thống của hàng bán điện thoại di động
Phân tích thiết kế hệ thống của hàng bán điện thoại di độngPhân tích thiết kế hệ thống của hàng bán điện thoại di động
Phân tích thiết kế hệ thống của hàng bán điện thoại di động
 
Tieng Anh chuyen nganh CNTT
Tieng Anh chuyen nganh CNTTTieng Anh chuyen nganh CNTT
Tieng Anh chuyen nganh CNTT
 
Bài 5: Thiết kế giao diện - Giáo trình FPT
Bài 5: Thiết kế giao diện - Giáo trình FPTBài 5: Thiết kế giao diện - Giáo trình FPT
Bài 5: Thiết kế giao diện - Giáo trình FPT
 
phân tích thiết kế hệ thống thông tin
phân tích thiết kế hệ thống thông tinphân tích thiết kế hệ thống thông tin
phân tích thiết kế hệ thống thông tin
 
lý thuyết cơ sở dữ liệu phân tán
lý thuyết cơ sở dữ liệu phân tánlý thuyết cơ sở dữ liệu phân tán
lý thuyết cơ sở dữ liệu phân tán
 
Kiem thu phan mem
Kiem thu phan memKiem thu phan mem
Kiem thu phan mem
 
Slide 1 - Thiết kế Web cơ bản
 Slide 1 - Thiết kế Web cơ bản Slide 1 - Thiết kế Web cơ bản
Slide 1 - Thiết kế Web cơ bản
 
BÀI GIẢNG LẬP TRÌNH HƯỚNG ĐỐI TƯỢNG
BÀI GIẢNG LẬP TRÌNH HƯỚNG ĐỐI TƯỢNGBÀI GIẢNG LẬP TRÌNH HƯỚNG ĐỐI TƯỢNG
BÀI GIẢNG LẬP TRÌNH HƯỚNG ĐỐI TƯỢNG
 

Similar to Devwork.vn Giáo trình C# cơ bản

1. giới thiệu về ng￴n ngữ lập trình c#
1. giới thiệu về ng￴n ngữ lập trình c#1. giới thiệu về ng￴n ngữ lập trình c#
1. giới thiệu về ng￴n ngữ lập trình c#
Duy Lê Văn
 
Nhat nghe c#
Nhat nghe   c#Nhat nghe   c#
Nhat nghe c#
Hihi Hung
 
Lập trình c# 2008 cơ bản (nhất nghệ) [thủ thuật it 360]
Lập trình c# 2008 cơ bản (nhất nghệ) [thủ thuật it 360]Lập trình c# 2008 cơ bản (nhất nghệ) [thủ thuật it 360]
Lập trình c# 2008 cơ bản (nhất nghệ) [thủ thuật it 360]
leduyk11
 
Giáo trình vb.net
Giáo trình vb.netGiáo trình vb.net
Giáo trình vb.net
Hung Pham
 
Chapter 1 1 vi
Chapter 1 1 viChapter 1 1 vi
Chapter 1 1 vi
Tan Duy
 
Chapter 1 1 vi
Chapter 1 1 viChapter 1 1 vi
Chapter 1 1 vi
Tan Duy
 

Similar to Devwork.vn Giáo trình C# cơ bản (20)

Bài 1 - Làm quen với C# - Lập trình winform
Bài 1 - Làm quen với C# - Lập trình winformBài 1 - Làm quen với C# - Lập trình winform
Bài 1 - Làm quen với C# - Lập trình winform
 
1. giới thiệu về ng￴n ngữ lập trình c#
1. giới thiệu về ng￴n ngữ lập trình c#1. giới thiệu về ng￴n ngữ lập trình c#
1. giới thiệu về ng￴n ngữ lập trình c#
 
Windows Programming Tác giả: Bộ môn Công nghệ phần mềm; Người hướng dẫn: -; ...
Windows Programming Tác giả: Bộ môn Công nghệ phần mềm;  Người hướng dẫn: -; ...Windows Programming Tác giả: Bộ môn Công nghệ phần mềm;  Người hướng dẫn: -; ...
Windows Programming Tác giả: Bộ môn Công nghệ phần mềm; Người hướng dẫn: -; ...
 
Nhat nghe c#
Nhat nghe   c#Nhat nghe   c#
Nhat nghe c#
 
Nhat nghe c#
Nhat nghe   c#Nhat nghe   c#
Nhat nghe c#
 
Nhat nghe c#
Nhat nghe   c#Nhat nghe   c#
Nhat nghe c#
 
Nhat nghe c#
Nhat nghe   c#Nhat nghe   c#
Nhat nghe c#
 
C# cơ bản hay
C# cơ bản hayC# cơ bản hay
C# cơ bản hay
 
Lập trình c# 2008 cơ bản (nhất nghệ) [thủ thuật it 360]
Lập trình c# 2008 cơ bản (nhất nghệ) [thủ thuật it 360]Lập trình c# 2008 cơ bản (nhất nghệ) [thủ thuật it 360]
Lập trình c# 2008 cơ bản (nhất nghệ) [thủ thuật it 360]
 
005. LAP TRINH C#.pdf
005. LAP TRINH C#.pdf005. LAP TRINH C#.pdf
005. LAP TRINH C#.pdf
 
005. LAP TRINH C#.pdf
005. LAP TRINH C#.pdf005. LAP TRINH C#.pdf
005. LAP TRINH C#.pdf
 
Ltgd ch01
Ltgd ch01Ltgd ch01
Ltgd ch01
 
Giáo trình vb.net
Giáo trình vb.netGiáo trình vb.net
Giáo trình vb.net
 
Chuong 1
Chuong 1Chuong 1
Chuong 1
 
Mau slide
Mau slideMau slide
Mau slide
 
1 tongquan C#
1 tongquan C#1 tongquan C#
1 tongquan C#
 
1 tongquan
1 tongquan1 tongquan
1 tongquan
 
Phan 1 sv
Phan 1   svPhan 1   sv
Phan 1 sv
 
Chapter 1 1 vi
Chapter 1 1 viChapter 1 1 vi
Chapter 1 1 vi
 
Chapter 1 1 vi
Chapter 1 1 viChapter 1 1 vi
Chapter 1 1 vi
 

Devwork.vn Giáo trình C# cơ bản

  • 1. LẬP TRÌNH C# BÀI 1: Làm quen với C#
  • 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
  • 13. Visual Studio 2010 Làm quen với C# 13
  • 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
  • 18. KIỂU DỮ LIỆU Làm quen với C# 18
  • 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
  • 36. THAO TÁC VỚI CHUỖI Làm quen với C# 36
  • 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; }
  • 56. XỬ LÝ NGOẠI LỆ Làm quen với C# 56
  • 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
  • 59. Exception FormatException ArithmeticException Cây phân cấp ngoại lệ OverflowException Tất cả các ngoại lệ đều là lớpcon của Exception DivideByZeroException Làm quen với C# 59
  • 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