65
Bài 1: Làm quen với C#

Bài 1 - Làm quen với C# - Lập trình winform

Embed Size (px)

DESCRIPTION

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ệ 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ệ

Citation preview

Page 1: Bài 1 - Làm quen với C# - Lập trình winform

Bài 1:Làm quen với C#

Page 2: Bài 1 - Làm quen với C# - Lập trình winform

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ệuToán tửThao tác với chuỗiCấu trúc điều khiểnPhương thứcXử lý ngoại lệ

Mục tiêu bài học

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ệuToán tửThao tác với chuỗiCấu trúc điều khiểnPhương thứcXử lý ngoại lệ

Làm quen với C# 2

Page 3: Bài 1 - Làm quen với C# - Lập trình winform

Windows 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ườidùng

Khác với Web Forms là ứng dụng chạy trên Web Forms. Khi ứngdụ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

Ứng dụng Windows Forms

Windows 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ườidùng

Khác với Web Forms là ứng dụng chạy trên Web Forms. Khi ứngdụ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

Page 4: Bài 1 - Làm quen với C# - Lập trình winform

Kiế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ớpkhác

Làm quen với C# 4

.NET Framework Class Library

Các lớp Windows Forms Các lớp ASP.NET Các lớpkhác Common Language Runtime

Ứng dụng được quản lý Hệ thống kiểu thông dụng Ngôn ngữ trunggian

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

Page 5: Bài 1 - Làm quen với C# - Lập trình winform

Ứng dụng Windows Forms không truy cập hệ điều hành hay phầncứng máy tính trực tiếp mà thông qua các dịch vụ của .NETFramework.NET Framework gồm hai thành phần chính:

.NET Framework Class LibraryCommon Language Runtime

.NET Framework

Làm quen với C# 5

Page 6: Bài 1 - Làm quen với C# - Lập trình winform

.NET Framework Class Library bao gồm thư viện các đoạn mã đượcviế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ụngWindows FormsCác lớp ASP.NET được sử dụng để phát triển các ứng dụng WebForms.Những lớp khác hỗ trợ lập trình với CSDL, quản lý bảo mật, truyxuất file

Các lớp của .NET Framework Class Library được tổ chức thành cấutrú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ànamespaceMỗ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 formnamespace System.Data chứa các lớp sử dụng để truy cập dữ liệu

.NET Framework Class Library

.NET Framework Class Library bao gồm thư viện các đoạn mã đượcviế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ụngWindows FormsCác lớp ASP.NET được sử dụng để phát triển các ứng dụng WebForms.Những lớp khác hỗ trợ lập trình với CSDL, quản lý bảo mật, truyxuất file

Các lớp của .NET Framework Class Library được tổ chức thành cấutrú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ànamespaceMỗ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 formnamespace System.Data chứa các lớp sử dụng để truy cập dữ liệu

Làm quen với C# 6

Page 7: Bài 1 - Làm quen với C# - Lập trình winform

Common Language Runtime (CLR)

CIL code

Visual C#

Visual Basic

Visual C++

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#

Làm quen với C# 7

Visual C++

Visual F#

bộ biên dịch C++

Giai đoạn biên dịch Giai đoạn chạy

Nguồn: Wikipedia 1

Page 8: Bài 1 - Làm quen với C# - Lập trình winform

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ọilà 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ủaCLR (quản lý bộ nhớ, thực thi code, bảo mật ….), nên còn được gọilà ứng dụng được quản lý

CRL cung cấp Hệ thống kiểu chung (Common Type System) địnhnghĩ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ọilà 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ủaCLR (quản lý bộ nhớ, thực thi code, bảo mật ….), nên còn được gọilà ứng dụng được quản lý

CRL cung cấp Hệ thống kiểu chung (Common Type System) địnhnghĩ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# 8

Page 9: Bài 1 - Làm quen với C# - Lập trình winform

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ềuhành

5

Làm quen với C# 9

Solution

Project

File nguồn

Assembly

IL

Tham chiếuđến các lớp

1 2 43

Ứng dụngđược triểnkhai

Page 10: Bài 1 - Làm quen với C# - Lập trình winform

Quá trình biên dịchSử dụng Visual Studio để tạo project (ứng dụng). Project gồm cácfile 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êndịch là assembly

Assembly gồmNgôn ngữ trung gian (IL) được biên dịch từ file nguồnCá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ằnghệ điều hành

Biên dịch và chạy một ứng dụng

Quá trình biên dịchSử dụng Visual Studio để tạo project (ứng dụng). Project gồm cácfile 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êndịch là assembly

Assembly gồmNgôn ngữ trung gian (IL) được biên dịch từ file nguồnCá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ằnghệ điều hành

Làm quen với C# 10

Page 11: Bài 1 - Làm quen với C# - Lập trình winform

So sánh C# với các ngôn ngữ lập trình .NET khácGiống

Cùng sử dụng chung các lớp .NET FrameworkTạo và làm việc với form, điều khiển, sử dụng csdl và làm việc trêncùng một IDE Visual Studio

Khác:Cú pháp

So sánh C# với JavaGiống:

Có cú pháp gần giống nhauKhác

FrameworkIDE

So sánh C# với cácngôn ngữ lập trình .NET khác

So sánh C# với các ngôn ngữ lập trình .NET khácGiống

Cùng sử dụng chung các lớp .NET FrameworkTạo và làm việc với form, điều khiển, sử dụng csdl và làm việc trêncùng một IDE Visual Studio

Khác:Cú pháp

So sánh C# với JavaGiống:

Có cú pháp gần giống nhauKhác

FrameworkIDE

Làm quen với C# 11

Page 12: Bài 1 - Làm quen với C# - Lập trình winform

.NET ngày càng hoàn thiện và cung cấp nhiều tính năng cho ngườidùng hơnVisual Studio 2010 tích hợp .NET 4.0

Sự phát triển .NET FrameWork

Làm quen với C# 12

Page 13: Bài 1 - Làm quen với C# - Lập trình winform

Visual Studio 2010

Làm quen với C# 13

Page 14: Bài 1 - Làm quen với C# - Lập trình winform

Visual Studio 2010

Visual Studio là một bộ sản phẩm gồm IDE và .NET FrameworkIDE để 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

Làm quen với C# 14

Môi trường phát triển tích hợp(IDE – Integrated Development Environment)

.NET FRAMEWORK

Page 15: Bài 1 - Làm quen với C# - Lập trình winform

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 cho sinh

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ểncác ứng dụng có khả năng mở rộng. Phiên bản này bao gồm các côngcụ hữu ích cho việc lập trình như công cụ kiểm thử, công cụ triểnkhai 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.

Làm quen với C# 15

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ểncác ứng dụng có khả năng mở rộng. Phiên bản này bao gồm các côngcụ hữu ích cho việc lập trình như công cụ kiểm thử, công cụ triểnkhai 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áccông cụ lập trình như công cụ kiểm thử, công cụ mô hình hóa, côngcụ CSDL và công cụ quản lý vòng đời dự án.

Page 16: Bài 1 - Làm quen với C# - Lập trình winform

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 ứngdụ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.

Làm quen với C# 16

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

Page 17: Bài 1 - Làm quen với C# - Lập trình winform

IDE 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ậptrìnhKhi 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

Page 18: Bài 1 - Làm quen với C# - Lập trình winform

KIỂU DỮ LIỆU

Làm quen với C# 18

KIỂU DỮ LIỆU

Page 19: Bài 1 - Làm quen với C# - Lập trình winform

Cũng giống như VB, C# có hai kiểu dữ liệuDữ liệu kiểu giá trị

Tương ứng với kiểu Integer, Double… của Visual BasicDữ 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

Làm quen với C# 19

Kiểu giá trị Kiểu tham chiếu

Page 20: Bài 1 - Làm quen với C# - Lập trình winform

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 đế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

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 đến9.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)

Page 21: Bài 1 - Làm quen với C# - Lập trình winform

Dữ liệu kiểu giá trị bao gồmCá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 saibool

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ùyvào trường hợp sử dụng để sử dụng kiểu dữ liệu phù hợp

Dữ liệu kiểu giá trị

Dữ liệu kiểu giá trị bao gồmCá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 saibool

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ùyvà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# 21

Page 22: Bài 1 - Làm quen với C# - Lập trình winform

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 đốitượng nào

Dữ liệu kiểu tham chiếu

Tham chiếu đến bất kỳ kiểu đốitượng nào

Làm quen với C# 22

Kiểu string là kiểu object được định nghĩa trước

Page 23: Bài 1 - Làm quen với C# - Lập trình winform

.NET định nghĩa các kiểu dữ liệu bởi Common Type System thuộcCLRMỗi ngôn ngữ .NET sẽ có kiểu dữ liệu tương ứng với kiểu được địnhnghĩa trong CTSSau khi biên dịch các kiểu này sẽ được chuyển về kiểu CTS tươngứng

Kiểu dữ liệu

Mã nguồn Mã trung gian (CIL) Mã máy

Làm quen với C# 23

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

Page 24: Bài 1 - Làm quen với C# - Lập trình winform

Khai báo và khởi tạo biến kiểu giá trị

Visual BasicKhai 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

Visual C#

Dim tenBien As kieuBientenBien = giaTri

Dim x As Integerx = 1

Dim tenBien As kieuBien = giaTri

Dim x As Integer = 1

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;tenBien = giaTri;

int x;x = 1;

kieuBien tenBien = giaTri;

int x = 1;

Sau mỗi câu lệnh đềucó dấu chấm phẩy

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

Làm quen với C# 24

Dim tenBien As kieuBien = giaTri

Dim x As Integer = 1

const tenHang As kieuBien = giaTri

const x As Integer = 5

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;

int x = 1;

const kieuBien tenHang = giaTri;

const int x = 5;

Chú ý: Tên biến đặt theo ký pháp lạc đà

Page 25: Bài 1 - Làm quen với C# - Lập trình winform

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

Chuyển từ kiểu có độ chính xác bé sang kiểu có độ chính xác lớn hơnCũng như Visual Basic, C# tự động ép kiểu mở rộng

C# tự động chuyển từ kiểu bên trái sang bên phải

Ép kiểu thu hẹpChuyể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

Ép kiểu

double a = 2 ; // Chuyển từ int sang doubleint b = 3, c = 4;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Ép kiểu mở rộng

Chuyển từ kiểu có độ chính xác bé sang kiểu có độ chính xác lớn hơnCũng như Visual Basic, C# tự động ép kiểu mở rộng

C# tự động chuyển từ kiểu bên trái sang bên phải

Ép kiểu thu hẹpChuyể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

Làm quen với C# 25

byte short int long decimalbyte short int doublebyte short float double

int a = (int)2.5 ; // (a = 2) Chuyển từ double sang intint 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

Page 26: Bài 1 - Làm quen với C# - Lập trình winform

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 ConvertDùng phương thức này để chuyển kiểu cho tất cả các kiểu được xâydựng sẵn

Sử dụng phương thức để ép kiểu

decimal soTien = 20.00m;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 ConvertDùng phương thức này để chuyển kiểu cho tất cả các kiểu được xâydựng sẵn

Làm quen với C# 26

decimal soTien3 = Convert.ToDecimal(chuoiSoTien);string soTienStr = Convert .ToString(soTien3);

Page 27: Bài 1 - Làm quen với C# - Lập trình winform

TOÁN TỬ

Làm quen với C# 27

Page 28: Bài 1 - Làm quen với C# - Lập trình winform

C# 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 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ảiToán

tử haingôi

Làm quen với C# 28

* Phép nhân Nhân toán hạng bên trái với toán hạng bên phả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ênphải

+ Dấu dương Trả về giá trị của toán hạng

- Dấu âm Chuyển giá trị dương thành giá trị âm và giá trị âmthà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ántử haingôi

Toántử

mộtngôi

Page 29: Bài 1 - Làm quen với C# - Lập trình winform

Sử dụng các toán tử trong C# cũng tương tự như sử dụng các toántử trong Visual Basic

Demo sử dụng toán tử

//Tính toán với số nguyênint x = 14;int y = 8;

int z1 = x + y; //z1 = 22int z2 = x - y; //z2 = 6int z3 = x * y; //z3 = 112int z4 = x / y; //z4 = 1int z5 = x % y; //z5 = 6int z6 = -x + y; //z6 = 6int z7 = --y; //z7 = 7, y = 7int z8 = ++y; //z8 = 15, x = 15

//Tính toán với số thập phândecimal a = 8.5m;decimal b = 3.4m;

decimal c1 = a + b; //c1 = 11.9decimal c2 = a - b; //c2 = 5.1decimal c3 = a * b; //c3 = 28.90decimal c4 = a / b; //c4 = 2.5decimal c5 = a % b; //c5 = 1.7decimal c6 = -a + b; //c6 = -8.5decimal c7 = --a; //c7 = 7.5, a = 7.5decimal z8 = ++b; //c8 = 4.4, b = 4.4

Làm quen với C# 29

//Tính toán với số nguyênint x = 14;int y = 8;

int z1 = x + y; //z1 = 22int z2 = x - y; //z2 = 6int z3 = x * y; //z3 = 112int z4 = x / y; //z4 = 1int z5 = x % y; //z5 = 6int z6 = -x + y; //z6 = 6int z7 = --y; //z7 = 7, y = 7int z8 = ++y; //z8 = 15, x = 15

//Tính toán với số thập phândecimal a = 8.5m;decimal b = 3.4m;

decimal c1 = a + b; //c1 = 11.9decimal c2 = a - b; //c2 = 5.1decimal c3 = a * b; //c3 = 28.90decimal c4 = a / b; //c4 = 2.5decimal c5 = a % b; //c5 = 1.7decimal c6 = -a + b; //c6 = -8.5decimal c7 = --a; //c7 = 7.5, a = 7.5decimal z8 = ++b; //c8 = 4.4, b = 4.4

//Tính toán với kiểu ký tựchar letter1 = ‘C’; //letter1 = ‘C’char letter2 = ++letter1; //letter2 = ‘D’

Page 30: Bài 1 - Làm quen với C# - Lập trình winform

Thứ tự ưu tiên giống như trong Visual Basic1. 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

Thứ tự ưu tiên

decimal phanTramChietKhau = 0.2 m;decimal gia = 100m;gia = gia * (1 - phanTramChieuKhau);

Làm quen với C# 30

decimal phanTramChietKhau = 0.2 m;decimal gia = 100m;gia = gia * (1 - phanTramChieuKhau);

Page 31: Bài 1 - Làm quen với C# - Lập trình winform

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

Làm quen với C# 31

*= 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

Page 32: Bài 1 - Làm quen với C# - Lập trình winform

Sử dụng phép gán cũng tương tự như trong Visual BasicCú pháp

Ví dụ

Sử dụng toán tử gán

tenBien = bieuThuc

//Phép gán thông thườngx = 7 ; //bieuThuc là một giá trịy = x ; //bieuThuc là một biếnz = 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ánx = x + 10; //x = 17

//Sử dụng toán tử gán rút gọnx +=10; //x = 27c

Làm quen với C# 32

//Phép gán thông thườngx = 7 ; //bieuThuc là một giá trịy = x ; //bieuThuc là một biếnz = 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ánx = x + 10; //x = 17

//Sử dụng toán tử gán rút gọnx +=10; //x = 27c

Page 33: Bài 1 - Làm quen với C# - Lập trình winform

C# cung cấp các toán tử logic tương tự như Visual BasicTuy kí hiệu toán tử C# khác với Visual Basic nhưng việc sử dụngchúng giống hệt nhau.

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à

Làm quen với C# 33

And & Và

Or I Hoặc

Not ! Not

(x < 20) && (x >10) //Tương tự như (x<20) AndAlso (x>10) trong Vb

Page 34: Bài 1 - Làm quen với C# - Lập trình winform

C# cung cấp các toán tử tương tự như Visual BasicViệc sử dụng các toán tử này cũng giống như trong Visual BasicLưu ý ký hiệu toán tử bằng và toán tử không bằng của hai ngônngữ khác nhau

Toán tử quan hệ

Toán tử VB Toán tử C# Tên

= == Bằng

<> != Không bằng

C# cung cấp các toán tử tương tự như Visual BasicViệc sử dụng các toán tử này cũng giống như trong Visual BasicLưu ý ký hiệu toán tử bằng và toán tử không bằng của hai ngônngữ khác nhau

Làm quen với C# 34

<> != 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

Page 35: Bài 1 - Làm quen với C# - Lập trình winform

Cũ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

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

Làm quen với C# 35

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 hai số

Page 36: Bài 1 - Làm quen với C# - Lập trình winform

THAO TÁCVỚI CHUỖI

Làm quen với C# 36

THAO TÁCVỚI CHUỖI

Page 37: Bài 1 - Làm quen với C# - Lập trình winform

Khái niệm chuỗi (String) trong C# cũng giống như khái niệm chuỗitrong Visual BasicKhai 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 stringstring b = “”; // Gán chuỗi rỗng cho stringstring 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 BasicKhai báo và khởi tạo chuỗi

Nối chuỗi

Làm quen với C# 37

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”

Page 38: Bài 1 - Làm quen với C# - Lập trình winform

Để 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:voi hoga vit

Để 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

Làm quen với C# 38

string convat = “voi\tho\rga\tvit”;

chuoi convat sẽ có định dạng như sau:voi hoga vit

string convat = @”voi hoga vit”;

chuoi convat sẽ có định dạng nhưsau:voi hoga 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)

Page 39: Bài 1 - Làm quen với C# - Lập trình winform

Giống như VB, C# cung cấp các định dạng hiển thị

Sử dụng phương thức ToString

Sử dụng phương thức Format của lớp String

Đị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

Sử dụng phương thức Format của lớp String

Làm quen với C# 39

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

decimal sotien = 123.12;string sotienFormat = sotien.ToString(“c”); //$123.12

string sotienFormat2 = String.Format(“{0:c}”, sotien) ; //$123.12

Page 40: Bài 1 - Làm quen với C# - Lập trình winform

CẤU TRÚCĐIỀU KHIỂN

Làm quen với C# 40

CẤU TRÚCĐIỀU KHIỂN

Page 41: Bài 1 - Làm quen với C# - Lập trình winform

C# cung cấp các cấu trúc điều khiển giống như Visual BasicCấu trúc tuần tựCấu trúc lựa chọn

Cấu trúc lựa chọn đơnCấu trúc lựa chọn képCấu trúc đa lựa chọn

Cấu trúc lặpCấu trúc lặp biết số vòng lặpCấ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 nhauvề 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 BasicCấu trúc tuần tựCấu trúc lựa chọn

Cấu trúc lựa chọn đơnCấu trúc lựa chọn képCấu trúc đa lựa chọn

Cấu trúc lặpCấu trúc lặp biết số vòng lặpCấ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 nhauvề cú pháp

Làm quen với C# 41

Page 42: Bài 1 - Làm quen với C# - Lập trình winform

Lệnh lựa chọn đơn

Visual Basic

Cú pháp

Ví dụ

C#

Cú pháp

Ví dụ

If (bieuthucdieukien) Then//Thân lệnh

End If

if (bieuthucdieukien){//Thân lệnh

}

Cú pháp

Ví dụ

Cú pháp

Ví dụ

Làm quen với C# 42

If diem>6 ThenDisplay.Text = “Đỗ”

End If

if (diem>6){

Display.Text = “Đỗ”;}

Page 43: Bài 1 - Làm quen với C# - Lập trình winform

Lệnh lựa chọn kép

Visual Basic

Cú pháp

Ví dụ

C#

Cú pháp

Ví dụ

If (bieuthucdieukien) Then//Thân lệnh

Else//Thân lệnh

End If

If (bieuthucdieukien){//Thân lệnh

}else{

//Thân lệnh}

Cú pháp

Ví dụ

Cú pháp

Ví dụ

Làm quen với C# 43

If (bieuthucdieukien) Then//Thân lệnh

Else//Thân lệnh

End If

If (bieuthucdieukien){//Thân lệnh

}else{

//Thân lệnh}

If diem>4 ThenDisplay.Text = “Đỗ”

ElseDisplay.Text = “Trượt

End If

If diem>6 {Display.Text = “Đỗ”

}else{Display.Text = “Đỗ”

}

Page 44: Bài 1 - Làm quen với C# - Lập trình winform

Lệnh đa lựa chọn

Visual Basic

Cú pháp

C#

Cú phápSelect Case (bieuthucdieukien)

Case giatri//Thân mệnh đề

…Case giatri

//Thân mệnh đềCase Else

//Thân mệnh đềEnd Select

switch(bieuthucdieukien){

case giatri://Thân mệnh đềbreak;

…case giatri:

//Thân mệnh đềbreak;

default://Thân mệnh đềbreak;

}

Cú pháp Cú pháp

Làm quen với C# 44

Select Case (bieuthucdieukien)Case giatri

//Thân mệnh đề…

Case giatri//Thân mệnh đề

Case Else//Thân mệnh đề

End Select

switch(bieuthucdieukien){

case giatri://Thân mệnh đềbreak;

…case giatri:

//Thân mệnh đềbreak;

default://Thân mệnh đềbreak;

}

Page 45: Bài 1 - Làm quen với C# - Lập trình winform

Lệnh đa lựa chọn

Visual Basic

Ví dụ

C#

Ví dụSelect Case diem

Case "A", "B"displayLabel.Text = "Rất tốt!"

Case "C", "D"displayLabel.Text = "Tốt!"

Case "F"displayLabel.Text = "Trượt."

Case ElsedisplayLabel.Text = “Điểm không hợp lệ."

End Select

switch(diem){

case “A”:case “B”:

displayLabel.Text = “Rất tốt!”;break;

case “C”:case “D”:

displayLabel.Text = “Tốt!”;break;

case “F”:displayLabel.Text = “Trượt.”;break;

default:displayLabel.Text = “Diem khonghop le.”break;

}

Ví dụ Ví dụ

Làm quen với C# 45

Select Case diemCase "A", "B"

displayLabel.Text = "Rất tốt!"Case "C", "D"

displayLabel.Text = "Tốt!"Case "F"

displayLabel.Text = "Trượt."Case Else

displayLabel.Text = “Điểm không hợp lệ."End Select

switch(diem){

case “A”:case “B”:

displayLabel.Text = “Rất tốt!”;break;

case “C”:case “D”:

displayLabel.Text = “Tốt!”;break;

case “F”:displayLabel.Text = “Trượt.”;break;

default:displayLabel.Text = “Diem khonghop le.”break;

}

Page 46: Bài 1 - Làm quen với C# - Lập trình winform

Lệnh lặp while

Visual Basic

Cú pháp

Ví dụ

C#

Cú pháp

Ví dụ

Do While (bieuthucdieukien)//Thân lệnh

Loop

while (bieuthucdieukien){//Thân lệnh

}

Cú pháp

Ví dụ

Cú pháp

Ví dụ

Làm quen với C# 46

Dim sum As Integer = 0

Dim i As Integer = 1

Do While i <= 5

sum = sum + i

i = i + 1

Loop

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 trongvòng lặp

Page 47: Bài 1 - Làm quen với C# - Lập trình winform

Lệnh lặp do while

Visual Basic

Cú pháp

Ví dụ

C#

Cú pháp

Ví dụ

Do//Thân lệnh

Loop While (bieuthucdieukien)

do {//Thân lệnh

} while (bieuthucdieukien)

Cú pháp

Ví dụ

Cú pháp

Ví dụ

Làm quen với C# 47

Dim sum As Integer = 0

Dim i As Integer = 1

Do

sum = sum + i

i = i + 1

Loop While i <= 5

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ểuthức điều kiện

Page 48: Bài 1 - Làm quen với C# - Lập trình winform

Cú pháp Visual Basic

Cú pháp C#

Lệnh for

For tenbiendieukhien As Integer = giatrikhoitao To giatricuoi Step buoctang//Thân lệnh

Next

for (giatrikhoitao ; bieuthuclogic ; bieuthuctang){//Thân lệnh

}

Làm quen với C# 48

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;

}

Page 49: Bài 1 - Làm quen với C# - Lập trình winform

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

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

Làm quen với C# 49

Page 50: Bài 1 - Làm quen với C# - Lập trình winform

PHƯƠNG THỨC

Làm quen với C# 50

PHƯƠNG THỨC

Page 51: Bài 1 - Làm quen với C# - Lập trình winform

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

Đối với hàm không trả về giá trị: kiểu trả về là void

Phương thức

(Private|Public) Sub tenthutuc (ByVal thamso1 As kieuthamso)//Thân thủ tục

End Sub

(Private|Public) Function tenthutuc (ByVal thamso1 As kieuthamso) As kieutrave//Thân thủ tục

End Sub

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

Đối với hàm không trả về giá trị: kiểu trả về là void

Làm quen với C# 51

(Private|Public) Function tenthutuc (ByVal thamso1 As kieuthamso) As kieutrave//Thân thủ tục

End Sub

(private|public) kieutrave tenphuongthuc (kieubienthamso thamso1) {//Thân thủ tục

}

Page 52: Bài 1 - Làm quen với C# - Lập trình winform

Cú 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 trong C#

(private|public) kieutrave tenphuongthuc (kieubienthamso thamso1) {//Thân thủ tục

}

private void hienThi(string user, string pass){

txtUser.Text = user;txtPass.Text = pass;

}

Cú pháp

Phương thức không trả về giá trị

Phương thức trả về giá trị và có tham số

Làm quen với C# 52

private void hienThi(string user, string pass){

txtUser.Text = user;txtPass.Text = pass;

}

private int binhPhuong(int x){

return x * x;}

Page 53: Bài 1 - Làm quen với C# - Lập trình winform

Cú pháp gọi đến phương thức cũng tương tự như Visual BasicVisual Basic

C#

Ví dụĐịnh nghĩa phương thức

Gọi phương thức

Gọi phương thức

[Me.] tenphuongthuc ([danhsachthamso])

[this.] tenphuongthuc ([danhsachthamso])

Cú pháp gọi đến phương thức cũng tương tự như Visual BasicVisual Basic

C#

Ví dụĐịnh nghĩa phương thức

Gọi phương thức

Làm quen với C# 53

private int binhPhuong(int x){

return x * x;}

int ketQua = this.binhPhuong(10);

Page 54: Bài 1 - Làm quen với C# - Lập trình winform

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

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;

}

Làm quen với C# 54

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;

}

Page 55: Bài 1 - Làm quen với C# - Lập trình winform

Tương tự Visual Basic, C# cũng cung cấp tham số tùy chọn chophương thứcTham số tùy chọn trên Visual Basic

Tham số tùy chọn trên C#

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 IntegerReturn x * y * z

End Function

Tương tự Visual Basic, C# cũng cung cấp tham số tùy chọn chophương thứcTham số tùy chọn trên Visual Basic

Tham số tùy chọn trên C#

Làm quen với C# 55

Private Function tinhLapPhuong( Optional ByVal x As Integer = 1, _Optional ByVal y As Integer = 1, _Optional ByVal z As Integer = 1 ) As IntegerReturn x * y * z

End Function

private tinhLapPhuong(decimal x = 1, decimal y =1, decimal z =1){return x * y * z;

}

Page 56: Bài 1 - Làm quen với C# - Lập trình winform

XỬ LÝNGOẠI LỆ

Làm quen với C# 56

XỬ LÝNGOẠI LỆ

Page 57: Bài 1 - Làm quen với C# - Lập trình winform

Chương trình nào cũng có khả năng gặp phải các tình huống khôngmong muốn

Người dùng nhập dữ liệu không hợp lệFile cần mở bị khóaLỗ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ộtChươ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

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ôngmong muốn

Người dùng nhập dữ liệu không hợp lệFile cần mở bị khóaLỗ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ộtChươ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

Page 58: Bài 1 - Làm quen với C# - Lập trình winform

Khi gặp lỗi không xử lý được, ứng dụng ném ra một ngoại lệ

Ngoại lệ

Làm quen với C# 58

Ứng dụng ném ra ngoại lệ FormatException vìxẩy ra lỗi không ép kiểu thành công

Page 59: Bài 1 - Làm quen với C# - Lập trình winform

Exception

FormatException ArithmeticException

Cây phân cấp ngoại lệ

OverflowException

DivideByZeroException

Làm quen với C# 59

Tất cả các ngoại lệ đều là lớp concủa Exception

Page 60: Bài 1 - Làm quen với C# - Lập trình winform

Một số phương thức có thể ném ra ngoại lệ

Các thuộc tính/phương thức của đối tượng Exception

Ngoại lệ

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

Một số phương thức có thể ném ra ngoại lệ

Các thuộc tính/phương thức của đối tượng Exception

Làm quen với C# 60

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

Page 61: Bài 1 - Làm quen với C# - Lập trình winform

Sử dụng try catch để xử lý ngoại lệ

Xử lý ngoại lệMáy tính sẽ chạy từng lệnh trong khối tryNếu lệnh nào ném ra ngoại lệ, máy tính sẽ chuyển đến thực hiệnlệnh trong khối catchThực hiện xong lệnh trong khối catch, máy tính sẽ thực hiện lệnhtiếp theo sau khối 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}

Sử dụng try catch để xử lý ngoại lệ

Xử lý ngoại lệMáy tính sẽ chạy từng lệnh trong khối tryNếu lệnh nào ném ra ngoại lệ, máy tính sẽ chuyển đến thực hiệnlệnh trong khối catchThực hiện xong lệnh trong khối catch, máy tính sẽ thực hiện lệnhtiếp theo sau khối try-catch

Làm quen với C# 61

try{

//Viết mã có khả năng có ngoại lệ ở đây}catch (Exception ex){

//Viết mã xử lý lỗi ở đây}

Page 62: Bài 1 - Làm quen với C# - Lập trình winform

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);}catch (FormatException){

MessageBox.Show("Invalid numeric format. Please check all entries.","Entry Error");

}catch (OverflowException){

MessageBox.Show("Overflow error. Please enter smaller values.","Entry Error");

}catch (Exception ex){

MessageBox.Show(ex.Message + "\n\n" +ex.GetType().ToString() + "\n" +ex.StackTrace, "Exception");

}Làm quen với C# 62

try{

decimal monthlyInvestment =Convert.ToDecimal(txtMonthlyInvestment.Text);

decimal yearlyInterestRate =Convert.ToDecimal(txtInterestRate.Text);

int years = Convert.ToInt32(txtYears.Text);}catch (FormatException){

MessageBox.Show("Invalid numeric format. Please check all entries.","Entry Error");

}catch (OverflowException){

MessageBox.Show("Overflow error. Please enter smaller values.","Entry Error");

}catch (Exception ex){

MessageBox.Show(ex.Message + "\n\n" +ex.GetType().ToString() + "\n" +ex.StackTrace, "Exception");

}

Page 63: Bài 1 - Làm quen với C# - Lập trình winform

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 địnhnghĩ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ànhcủ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 ClassLibrary và Common Language Runtime (CLR)..NET Framwork Class Library bao gồm thư viện các đoạn mã đượcviết sẵn cung cấp các chức năng cần thiết khi lập trìnhCLR cung cấp các dịch vụ cần thiết để chạy ứng dụng được viếtbằng ngôn ngữ .NETTất cả các ứng dụng viết bằng ngôn ngữ .NET đều được biên dịchthà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

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 địnhnghĩ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ànhcủ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 ClassLibrary và Common Language Runtime (CLR)..NET Framwork Class Library bao gồm thư viện các đoạn mã đượcviết sẵn cung cấp các chức năng cần thiết khi lập trìnhCLR cung cấp các dịch vụ cần thiết để chạy ứng dụng được viếtbằng ngôn ngữ .NETTất cả các ứng dụng viết bằng ngôn ngữ .NET đều được biên dịchthà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

Page 64: Bài 1 - Làm quen với C# - Lập trình winform

Giống như VB, kiểu dữ liệu trong C# cũng được chia thành hai loạilà 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ẵnC# 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ặpKhô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 chophươ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ẩyra lỗiĐoạn mã có khả năng xẩy ra lỗi được đặt trong khối try, khối catchchứa mã xử lý lỗi.

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ạilà 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ẵnC# 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ặpKhô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 chophươ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ẩyra lỗiĐoạn mã có khả năng xẩy ra lỗi được đặt trong khối try, khối catchchứa mã xử lý lỗi.

Làm quen với C# 64

Page 65: Bài 1 - Làm quen với C# - Lập trình winform

1. http://en.wikipedia.org/wiki/Common_Language_Runtime

Danh sách tham khảo

Làm quen với C# 65