Bài 2 : Các khái niệm và nguyên tắc cơ bản của NET Framework - NỀN TẢNG LẬP...
-
Upload
hoc-lap-trinh-web -
Category
Education
-
view
3.602 -
download
2
description
Transcript of Bài 2 : Các khái niệm và nguyên tắc cơ bản của NET Framework - NỀN TẢNG LẬP...
TRƯỜNG ĐẠI HỌC KHOA HỌC TỰ NHIÊN TP.HCM
TRUNG TÂM TIN HỌC
1
TRƯỜNG ĐẠI HỌC KHOA HỌC TỰ NHIÊN TP.HCM
TRUNG TÂM TIN HỌC
Bài 2: Các khái niệm và nguyên tắc cơ bản của NET Frameworkcơ bản của .NET Framework
• Tổng quan về .NET Framework• Các kiểu dữ liệu• Biến và hằng• Các toán tử
2
- 8 tiết -
TRƯỜNG ĐẠI HỌC KHOA HỌC TỰ NHIÊN TP.HCM
TRUNG TÂM TIN HỌC
Tổng quan về .NET Framework
• .NET Framework là thành phần nền tảng cho mọi công cụ phát triển ứng dụng .NETụ p g ụ g
• .NET Framework được thiết kế nhằm hỗ trợ cho các trình ứng dụng và các service thế hệ kế tiếp
• Cung cấp các lớp đối tượng (Class) để có thể gọi thi hành các chức năng mà đối tượng đó cung cấp
ấ ố ể ủ• Cung cấp hơn 5000 lớp đối tượng để gọi thực hiện đủ các loại dịch vụ từ hệ điều hành
3
TRƯỜNG ĐẠI HỌC KHOA HỌC TỰ NHIÊN TP.HCM
TRUNG TÂM TIN HỌC
Tổng quan về .NET Framework
• Kiến trúc của .NET Framework
4
TRƯỜNG ĐẠI HỌC KHOA HỌC TỰ NHIÊN TP.HCM
TRUNG TÂM TIN HỌC
Tổng quan về .NET Framework
• Hệ thống namespace trong .NET Framework
5
TRƯỜNG ĐẠI HỌC KHOA HỌC TỰ NHIÊN TP.HCM
TRUNG TÂM TIN HỌC
Bài 2: Các khái niệm và nguyên tắc cơ bản của NET Frameworkcơ bản của .NET Framework
• Tổng quan về NET Framework• Tổng quan về .NET Framework• Các kiểu dữ liệu• Biế à hằ• Biến và hằng• Các toán tử
6
TRƯỜNG ĐẠI HỌC KHOA HỌC TỰ NHIÊN TP.HCM
TRUNG TÂM TIN HỌC
Các kiểu dữ liệu
• Khái niệmể• Cách tạo và sử dụng các kiểu dữ liệu
• Chuyển đổi giữa các kiểu dữ liệu
7
TRƯỜNG ĐẠI HỌC KHOA HỌC TỰ NHIÊN TP.HCM
TRUNG TÂM TIN HỌC
Các kiểu dữ liệu
• Khái niệmT á ô ữ lậ t ì h ấ l ô ó á i− Trong các ngôn ngữ lập trình cấp cao luôn có các qui định về định nghĩa dữ liệu trong lập trình
− Kiểu là khái niệm ám chỉ việc định nghĩa hình thái cấuKiểu là khái niệm ám chỉ việc định nghĩa hình thái, cấu trúc và giá trị của dữ liệu, bao gồm cách biểu diễn và xử lý của dữ liệu
ể ả ế− Kiểu dữ liệu trong .NET được mô tả chi tiết trong một cấu trúc gọi là Common Type System (CTS)
8
TRƯỜNG ĐẠI HỌC KHOA HỌC TỰ NHIÊN TP.HCM
TRUNG TÂM TIN HỌC
Các kiểu dữ liệu
• Khái niệmKiể dữ liệ t NET đ hi thà h hiề l i− Kiểu dữ liệu trong .NET được chia thành nhiều loại:• Kiểu giá trị (Value Types)• Kiểu tham chiếu (Reference Types)Kiểu tham chiếu (Reference Types)• Kiểu do người dùng định nghĩa (User-defined Types)• Kiểu liệt kê (Enumerations)
− Mỗi kiểu dữ liệu trong .NET là một đối tượng, nghĩa là nó có các thuộc tính và phương thức riêng. Một trong những phương thức thường dùng nhất là Parse và
9
những phương thức thường dùng nhất là Parse và ToString
TRƯỜNG ĐẠI HỌC KHOA HỌC TỰ NHIÊN TP.HCM
TRUNG TÂM TIN HỌC
Các kiểu dữ liệu
• Cách tạo và sử dụng các kiểu dữ liệuCá kiể iá t ị (V l T )− Các kiểu giá trị (Value Types)
− Các kiểu tham chiếu (Reference Types)
10
TRƯỜNG ĐẠI HỌC KHOA HỌC TỰ NHIÊN TP.HCM
TRUNG TÂM TIN HỌC
Các kiểu dữ liệu
• Các kiểu giá trị (Value Types)Bao gồm các kiểu dữ liệu số học ngày giờ kiểu luận lý kiểu− Bao gồm các kiểu dữ liệu số học, ngày giờ, kiểu luận lý, kiểu do người dùng định nghĩa và kiểu liệt kê
− Các biến có kiểu giá trị là những biến chứa trực tiếp dữ liệu ếcủa chúng thay vì chứa một tham chiếu tới dữ liệu được lưu
trữ tại một nơi nào đó trong bộ nhớ (memory)
− Các instance của kiểu giá trị được lưu trữ trong một vùng nhớCác instance của kiểu giá trị được lưu trữ trong một vùng nhớ được gọi là stack, ở đó tại thời điểm vận hành (runtime) có thể tạo (create), đọc (read), cập nhật (update), và loại bỏ (remove) chúng một cách nhanh chóng
11
( ) g ộ g
TRƯỜNG ĐẠI HỌC KHOA HỌC TỰ NHIÊN TP.HCM
TRUNG TÂM TIN HỌC
Các kiểu dữ liệu
• Các kiểu giá trị (Value Types)Các kiểu giá trị tổng quát:− Các kiểu giá trị tổng quát:• Các kiểu giá trị được xây dựng sẵn (Built-in types) • Các kiểu do người dùng định nghĩa (User-defined types)Các kiểu do người dùng định nghĩa (User defined types) • Các kiểu liệt kê (Enumerations)
12
TRƯỜNG ĐẠI HỌC KHOA HỌC TỰ NHIÊN TP.HCM
TRUNG TÂM TIN HỌC
Các kiểu dữ liệu
• Kiểu giá trị được xây dựng sẵn (Built-in types)Là các kiểu cơ sở do NET Framework cung cấp các kiểu dữ− Là các kiểu cơ sở do .NET Framework cung cấp, các kiểu dữ liệu khác đều được xây dựng dựa trên các kiểu dữ liệu cơ sở này
ấ ể ố− Tất cả các kiểu dạng số (numeric types) được xây dựng sẵn đều thuộc loại kiểu giá trị
− Bảng sau liệt kê các kiểu số thường dùng nhất:− Bảng sau liệt kê các kiểu số thường dùng nhất:
13
TRƯỜNG ĐẠI HỌC KHOA HỌC TỰ NHIÊN TP.HCM
TRUNG TÂM TIN HỌC
Kiểu/Alias C# Kích thước Miền giá trị (Range)System.SByte/sbyte 1 byte -128 127y y y ySystem.Byte/byte 1 byte 0 255System.Short/short 2 bytes -32768 32767System Integer/int 4 bytes 2147483648 2147483647System.Integer/int 4 bytes -2147483648 2147483647System.UInteger/uint 4 bytes 0 4294967295System.Long/long 8 bytes -9223372036854775808
92233720368547758079223372036854775807System.Single/float 4 bytes -3.402823E+38 3.402823E+38System.Double/double 8 bytes -1.79769313486232E+308
1 79769313486232E 3081.79769313486232E+308System.Decimal/decimal 16 bytes -79228162514264337593543950335
79228162514264337593543950335
14
TRƯỜNG ĐẠI HỌC KHOA HỌC TỰ NHIÊN TP.HCM
TRUNG TÂM TIN HỌC
Kiểu/Alias C# Kích thước Miền giá trị (Range)System.Char/char 2 bytes N/AySystem.Boolean/bool 4 bytes N/ASystem.DateTime (Date/date)
8 bytes 1/1/0001 12:00:00 AM12/31/9999 11:59:59 PM/3 /9999 59 59
− Việc sử dụng alias hoàn toàn tương đương với cách sử dụng tên kiểu theo cách đầy đủ, tuy nhiên hầu hết các lập trình viên y y ậpsử dụng alias để chúng ngắn gọn hơn.
− Khi gán các biến kiểu giá trị với nhau, dữ liệu được sao chép từ biến này tới biến kia và được lưu trữ tại hai vị trí khác nhautừ biến này tới biến kia và được lưu trữ tại hai vị trí khác nhau trên stack
− Các kiểu giá trị thường được dùng để trình bày các giá trị đơn giản
15
giản
TRƯỜNG ĐẠI HỌC KHOA HỌC TỰ NHIÊN TP.HCM
TRUNG TÂM TIN HỌC
Các kiểu dữ liệu
• Kiểu do người dùng định nghĩa (User-defined Types)Kiểu do người dùng định nghĩa còn được gọi là các struct− Kiểu do người dùng định nghĩa còn được gọi là các struct. Giống như các kiểu giá trị khác, các instance của các kiểu do người dùng định nghĩa được lưu trữ trên stack và chứa trực tiếp dữ liệu của chúngtiếp dữ liệu của chúng
− struct là một kiểu cấu trúc hỗn hợp của nhiều kiểu khác nhằm mục đích dễ dàng làm việc với dạng dữ liệu quan hệ
− struct có cấu trúc tương tự như class, tuy nhiên struct có kiểu giá trị còn class có kiểu tham chiếu.
16
TRƯỜNG ĐẠI HỌC KHOA HỌC TỰ NHIÊN TP.HCM
TRUNG TÂM TIN HỌC
Các kiểu dữ liệu
• Thông tin khách thuê bao có thể được lưu trữ như là một structtrữ như là một struct− Số điện thoại
H à tê− Họ và tên
− Địa chỉ liên lạc
17
TRƯỜNG ĐẠI HỌC KHOA HỌC TỰ NHIÊN TP.HCM
TRUNG TÂM TIN HỌC
Các kiểu dữ liệu
• Học sinh có thể được lưu trữ như là một structstruct− Mã số
H à tê− Họ và tên
− Ngày sinh
G− Giới tính
− Tên lớp
18
− Địa chỉ liên lạc
TRƯỜNG ĐẠI HỌC KHOA HỌC TỰ NHIÊN TP.HCM
TRUNG TÂM TIN HỌC
Các kiểu dữ liệu
• Khai báo kiểu dữ liệu structt t Nh Vistruct Nhan_Vien
{public string Ma_so;
public string Ho_ten;
public date Ngay_sinh;
public double He so luong;
19
p _ _ g;
}
TRƯỜNG ĐẠI HỌC KHOA HỌC TỰ NHIÊN TP.HCM
TRUNG TÂM TIN HỌC
Các kiểu dữ liệu
• Khai báo biến nhân viên và gán các giá trịNhan_Vien nv;
nv.Ma_so = “A01”
nv.Ho_ten = “Hoàng Thị Ngọc”
nv.Ngay_sinh = DateTime.Parse(“1/24/1968”)
nv.He_so_luong = 2.0
20
TRƯỜNG ĐẠI HỌC KHOA HỌC TỰ NHIÊN TP.HCM
TRUNG TÂM TIN HỌC
Cấu trúc (Structure)
• Hiển thị thông tin nhân viên ra màn hìnhMa_so.Text = nv1.Ma_so
Ho_ten.Text = nv1.Ho_ten
Ngay_sinh.Text = nv1.Ngay_sinh
He_so_luong.Text = nv1.He_so_luong
Gioi_tinh.Text = nv1.Gioi_tinh
21
TRƯỜNG ĐẠI HỌC KHOA HỌC TỰ NHIÊN TP.HCM
TRUNG TÂM TIN HỌC
Các kiểu dữ liệu
• Kiểu liệt kê (Enumerations) ể− Kiểu liệt kê là các ký hiệu có cùng một họ (có liên quan
với nhau) có các giá trị cố định.
− Kiểu liệt kê được dùng để cung cấp một danh sách chọnKiểu liệt kê được dùng để cung cấp một danh sách chọn lựa cho lập trình viên sử dụng
22
TRƯỜNG ĐẠI HỌC KHOA HỌC TỰ NHIÊN TP.HCM
TRUNG TÂM TIN HỌC
Các kiểu dữ liệu
• Kiểu liệt kê (Enumerations) − Ví dụ:
enum Titles : int { Mr, Ms, Mrs, Dr };
− Nếu bạn tạo một instance của kiểu Titles , Visual Studio sẽ hiển thị một danh sách các giá trị có sẵn để gán giá trị cho biếncho biến
23
Titles t = Titles.Dr;Console.WriteLine("{0}.", t); // Displays "Dr."
TRƯỜNG ĐẠI HỌC KHOA HỌC TỰ NHIÊN TP.HCM
TRUNG TÂM TIN HỌC
Các kiểu dữ liệu
• Kiểu liệt kê (Enumerations) ể ỉ ể ử− Lưu ý: khi khai báo kiểu liệt kê chỉ có thể sử dụng các
kiểu số nguyên như byte, sbyte, short, ushort, int, uint, long hoặc ulong.
24
TRƯỜNG ĐẠI HỌC KHOA HỌC TỰ NHIÊN TP.HCM
TRUNG TÂM TIN HỌC
Các kiểu dữ liệu
• Cách khai báo các kiểu giá trị ể ở ầ− Các kiểu giá trị có một khởi tạo (constructor) ngầm định,
do vậy bạn không cần phải bao gồm trong phần khai báo từ khóa New như khi khai báo với class
− Ví dụ:bool b = false;
− Trong C# mỗi câu lệnh được kết thúc bởi dấu “ ; ”
25
TRƯỜNG ĐẠI HỌC KHOA HỌC TỰ NHIÊN TP.HCM
TRUNG TÂM TIN HỌC
Các kiểu dữ liệu
• Cách khai báo các kiểu giá trị ấ ể ể− .NET 2.0 cung cấp một kiểu mới đó là kiểu Nullable cho
phép kiểm tra liệu một biến đã được gán giá trị hay chưa
− Ví dụ:Ví dụ:Nullable<bool> b = null;
// C# cho phép sử dụng ký hiệu thể hiện nhanh như saubool? b = null;
26
TRƯỜNG ĐẠI HỌC KHOA HỌC TỰ NHIÊN TP.HCM
TRUNG TÂM TIN HỌC
Các kiểu dữ liệu
• Cách khai báo các kiểu giá trị ế ể ử− Một biến có kiểu nullable cho phép sử dụng các thành
viên HasValue và Value. Bạn có thể sử dụng HasValueđể kiểm tra liệu có hay không một giá trị đã được thiết lập
− Ví dụ:if (b.HasValue)
Console.WriteLine("b is {0}.", b.Value);else
Console WriteLine("b is not set ");
27
Console.WriteLine( b is not set. );
TRƯỜNG ĐẠI HỌC KHOA HỌC TỰ NHIÊN TP.HCM
TRUNG TÂM TIN HỌC
Các kiểu dữ liệu
• Cách tạo và sử dụng các kiểu dữ liệuCá kiể iá t ị (V l T )− Các kiểu giá trị (Value Types)
− Các kiểu tham chiếu (Reference Types)
28
TRƯỜNG ĐẠI HỌC KHOA HỌC TỰ NHIÊN TP.HCM
TRUNG TÂM TIN HỌC
Các kiểu dữ liệu
• Các kiểu tham chiếu (Reference Types)Các kiểu tham chiếu lưu trữ địa chỉ dữ liệu của chúng cũng− Các kiểu tham chiếu lưu trữ địa chỉ dữ liệu của chúng, cũng được hiểu như là một con trỏ (pointer), trên stack.
− Dữ liệu thực sự mà các tham chiếu địa chỉ tham chiếu tới được lưu trữ trong một vùng bộ nhớ được gọi là heap
− Hầu hết các kiểu trong .NET Framework là kiểu tham chiếu. Các kiểu tham chiếu cung cấp rất nhiều cho tính linh động,Các kiểu tham chiếu cung cấp rất nhiều cho tính linh động, uyển chuyển, chúng mang đến khả năng thực thi hoàn hảo khi gởi chúng tới các phương thức
29
TRƯỜNG ĐẠI HỌC KHOA HỌC TỰ NHIÊN TP.HCM
TRUNG TÂM TIN HỌC
Các kiểu dữ liệu
• Các kiểu tham chiếu được xây dựng sẵnThời điểm vận hành (runtime) quản lý bộ nhớ bằng việc sử− Thời điểm vận hành (runtime) quản lý bộ nhớ bằng việc sử dụng heap thông qua một tiến trình được gọi là garbagecollection. Garbage collection sẽ khởi tạo bộ nhớ theo chu kỳ dựa theo nhu cầu bằng cách loại bỏ các đối tượng không còndựa theo nhu cầu bằng cách loại bỏ các đối tượng không còn được tham chiếu nữa.
− Có khoảng 2500 kiểu tham chiếu được xây dựng sẵn NET F k (khô đ dẫ ấ ừtrong .NET Framework (không được dẫn xuất từ
System.ValueType)
− Các kiểu tham chiếu thường dùng:
30
Các kiểu tham chiếu thường dùng:
TRƯỜNG ĐẠI HỌC KHOA HỌC TỰ NHIÊN TP.HCM
TRUNG TÂM TIN HỌC
Các kiểu dữ liệu
• Các kiểu tham chiếu được xây dựng sẵnCá kiể th hiế th ờ dù
Kiểu Ý nghĩa sử dụngể ổ
− Các kiểu tham chiếu thường dùng:
System.Object Kiểu tổng quát
System.String Dữ liệu dạng Text
System Text StringBuilder Dữ liệu dạng Dynamic textSystem.Text.StringBuilder Dữ liệu dạng Dynamic text
System.Array Mảng dữ liệu
System.IO.Stream Bộ đệm (Buffer) cho tập tin, thiết bị
31
System.Exception Kiểm soát hệ thống và trình ứng dụng
TRƯỜNG ĐẠI HỌC KHOA HỌC TỰ NHIÊN TP.HCM
TRUNG TÂM TIN HỌC
Các kiểu dữ liệu
• Sử dụng string và StringBuilderVí dụ sử dụng string:− Ví dụ sử dụng string:
string s = "this is some text to search";s = s.Replace("search", "replace");p ( , p );Console.WriteLine(s);
− Khi có bất kỳ sửa đổi đối với chuỗi tại thời điểm vận hành sẽ ỳtạo nên một chuỗi mới và bỏ đi chuỗi cũ
32
TRƯỜNG ĐẠI HỌC KHOA HỌC TỰ NHIÊN TP.HCM
TRUNG TÂM TIN HỌC
Các kiểu dữ liệu
• Sử dụng string và StringBuilderĐoạn mã lệnh sau đây sẽ cấp phát bốn chuỗi mới trong bộ− Đoạn mã lệnh sau đây sẽ cấp phát bốn chuỗi mới trong bộ nhớ:
string s;" b t" // " b t"s = "wombat"; // "wombat"
s += " kangaroo"; // "wombat kangaroo"s += " wallaby"; // "wombat kangaroo wallaby"s += " koala"; // "wombat kangaroo wallaby koala"; // g yConsole.WriteLine(s);
− Chỉ chuỗi sau cùng là có một tham chiếu; ba chuỗi kia sẽ được dispose khi công cụ thu gom rác làm việc (garbage
33
được dispose khi công cụ thu gom rác làm việc (garbage collection)
TRƯỜNG ĐẠI HỌC KHOA HỌC TỰ NHIÊN TP.HCM
TRUNG TÂM TIN HỌC
Các kiểu dữ liệu
• Sử dụng string và StringBuilderViệc ngăn ngừa các loại chuỗi tạm thời này giúp tránh gom− Việc ngăn ngừa các loại chuỗi tạm thời này giúp tránh gom rác không cần thiết, cải thiện hiệu suất hoạt động
− Có một số cách để ngăn ngừa các chuỗi tạm thời:Có một số cách để ngăn ngừa các chuỗi tạm thời:• Sử dụng các phương thức Concat, Join, hay Format của lớp
String ghép nhiều item trong một câu lệnh đơn lẻ
• Sử dụng lớp StringBuilder để tạo các chuỗi dạng dynamic (có thể biến đổi - mutable)
34
TRƯỜNG ĐẠI HỌC KHOA HỌC TỰ NHIÊN TP.HCM
TRUNG TÂM TIN HỌC
Các kiểu dữ liệu
• Sử dụng string và StringBuilder
− Đoạn mã lệnh sau đây giải thích cách sử dụng StringBuilderSystem.Text.StringBuilder sb = new System.Text.StringBuilder(30);sb.Append("wombat"); // Build string.sb.Append(" kangaroo");sb.Append(" wallaby");sb.Append(" koala");sb.Append( koala );string s = sb.ToString(); // Copy result to string.Console.WriteLine(s);
35
TRƯỜNG ĐẠI HỌC KHOA HỌC TỰ NHIÊN TP.HCM
TRUNG TÂM TIN HỌC
Các kiểu dữ liệu
• Sự chuyển đổi giữa các kiểu ể ổ ầ ấ ể ể− Chuyển đổi ngầm định: C# chấp nhận sự chuyển kiểu
ngầm định nếu kiểu đích có thể thích hợp với tất cả các giá trị có thể nhận từ kiểu nguồn.
− Ví dụ:
int i = 1;int i 1;double d = 1.0001;d = i; // Sự chuyển đổi được chấp nhận.
36
TRƯỜNG ĐẠI HỌC KHOA HỌC TỰ NHIÊN TP.HCM
TRUNG TÂM TIN HỌC
Các kiểu dữ liệu
• Sự chuyển đổi giữa các kiểu ể ổ ấ ả ế ả− Chuyển đổi tường minh: tất cả các biến trong C# phải
được khai báo kiểu một cách rõ ràng, và trình biên dịch kiểm tra tính nhất quán về kiểu của biểu thức.q
− Có thể thực hiện việc chuyển đổi kiểu tường minh bằng cách sử dụng toán tử chuyển kiểu (hay ép kiểu - cast operator) nó có dạng:operator), nó có dạng:
Biến = (kiểu cần chuyển đổi)<biểu thức chuyển đổi>
37
TRƯỜNG ĐẠI HỌC KHOA HỌC TỰ NHIÊN TP.HCM
TRUNG TÂM TIN HỌC
Các kiểu dữ liệu
• Sự chuyển đổi giữa các kiểu − Ví dụ:
long L;L = 32769;L = 32769;int I = (int) L;
38
TRƯỜNG ĐẠI HỌC KHOA HỌC TỰ NHIÊN TP.HCM
TRUNG TÂM TIN HỌC
Các kiểu dữ liệu
• Sự chuyển đổi giữa các kiểu ế ể ổ ể− Cơ chế Boxing và Unboxing: boxing chuyển đổi một kiểu
giá trị tới một kiểu tham chiếu, và unboxing chuyển đổi một kiểu tham chiếu tới một kiểu giá trị.g
− Ví dụ:
int i = 123;int i 123;object o = (object) i; // cơ chế boxing
object j = 123;i t k (i t) j // hế b i
39
int k = (int) j; // cơ chế unboxing
TRƯỜNG ĐẠI HỌC KHOA HỌC TỰ NHIÊN TP.HCM
TRUNG TÂM TIN HỌC
Các kiểu dữ liệu
• Sự chuyển đổi giữa các kiểu ử ử ử ố− Sử dụng toán tử as: toán tử as cũng được dùng giống
như ép kiểu với một số lưu ý:
• Toán tử as phải được sử dụng với kiểu tham chiếu Ví dụ:Toán tử as phải được sử dụng với kiểu tham chiếu. Ví dụ:
int j;object i = "35";j = i as int ;
=> Đoạn lệnh trên sẽ xảy ra lỗi do int là kiểu giá trị
40
TRƯỜNG ĐẠI HỌC KHOA HỌC TỰ NHIÊN TP.HCM
TRUNG TÂM TIN HỌC
Các kiểu dữ liệu
• Sự chuyển đổi giữa các kiểu ử ử ử ố− Sử dụng toán tử as: toán tử as cũng được dùng giống
như ép kiểu với một số lưu ý:
• Nếu không thể chuyển đổi kiểu nó sẽ trả về giá trị null VíNếu không thể chuyển đổi kiểu, nó sẽ trả về giá trị null. Ví dụ:
string j;bj t i "35"object i = "35";
j = i as string ;if (j == null)
Console.WriteLine("i không phải là chuỗi");
41
( g p );else
Console.WriteLine("i là chuỗi");
TRƯỜNG ĐẠI HỌC KHOA HỌC TỰ NHIÊN TP.HCM
TRUNG TÂM TIN HỌC
Các kiểu dữ liệu
• Sự chuyển đổi giữa các kiểu ử− Sử dụng các phương thức Convert:
• Các thành viên public được chia sẽ của lớp System.Convert có thể được sử dụng để chuyển đổi một kiểu dữ liệu cơ sở ợ ụ g y ộ ệtới kiểu dữ liệu cơ sở khác
• Sử dụng Object Browser để xem và tìm hiểu những phương thức chuyển đổi sẵn có (Để mở công cụ Object Browser:thức chuyển đổi sẵn có (Để mở công cụ Object Browser: chọn thưc đơn view Object Browser)
42
TRƯỜNG ĐẠI HỌC KHOA HỌC TỰ NHIÊN TP.HCM
TRUNG TÂM TIN HỌC
43
TRƯỜNG ĐẠI HỌC KHOA HỌC TỰ NHIÊN TP.HCM
TRUNG TÂM TIN HỌC
Các kiểu dữ liệu
• Sự chuyển đổi giữa các kiểu ử− Sử dụng các phương thức Convert:
• Ví dụ 1: chuyển đổi từ kiểu số thực sang kiểu số nguyên
d bl S Th 23 1double SoThuc = 23.15;try{
int SoNguyen = System.Convert.ToInt32(SoThuc);int SoNguyen System.Convert.ToInt32(SoThuc);}
catch (System.OverflowException){
S t C l W it Li ("Lỗi d ố ầ h ể lớ h biế
44
System.Console.WriteLine("Lỗi do số cần chuyển lớn hơn biến chứa kết quả chuyển.");}
TRƯỜNG ĐẠI HỌC KHOA HỌC TỰ NHIÊN TP.HCM
TRUNG TÂM TIN HỌC
Các kiểu dữ liệu
• Sự chuyển đổi giữa các kiểu ử− Sử dụng các phương thức Convert:
• Ví dụ 2: chuyển đổi từ kiểu số thực sang kiểu chuỗi
d bl S Th 23 15double SoThuc = 23.15;string strNumber = System.Convert.ToString(SoThuc);
45
TRƯỜNG ĐẠI HỌC KHOA HỌC TỰ NHIÊN TP.HCM
TRUNG TÂM TIN HỌC
Các kiểu dữ liệu
• Sự chuyển đổi giữa các kiểu ử ủ ể− Sử dụng phương thức Parse của kiểu dữ liệu:
• Ví dụ 1: gán giá trị vào cho biến có kiểu ngày
D Ti NDateTime Ngay;Ngay = DateTime.Parse(“01/25/2008”);
• Ví dụ 2: chuyển đổi số nguyên sang số thựcụ y g y g ự
double SoThuc;Int SoNguyen = 3; SoThuc = double Parse(SoNguyen);
46
SoThuc = double.Parse(SoNguyen);
TRƯỜNG ĐẠI HỌC KHOA HỌC TỰ NHIÊN TP.HCM
TRUNG TÂM TIN HỌC
Định dạng hiển thị kiểu dữ liệu
• C hay c: Sử dụng để định dạng đồng tiền. Mặc định, là dấu dollar [$].• D hay d: Sử dụng để định dạng số thập phân.• E hay e: Sử dụng để thể hiện dạng số mũ.• F hay f: Sử dụng cho định dạng dấu chấm tĩnh.• G hay g: Viết tắt của general. Ký tự này dùng để định dạng kiểu chấm tĩnhG hay g: Viết tắt của general. Ký tự này dùng để định dạng kiểu chấm tĩnh
hay số mũ.• N hay n: Sử dụng định dạng số học cơ bản (với dấu phẩy)• X hay x: Sử dụng định dạng thập lục Nếu bạn dùng X viết hoa thì ký tựX hay x: Sử dụng định dạng thập lục. Nếu bạn dùng X viết hoa thì ký tự
thập lục cũng sẽ được viết hoa.
Các định dạng này được viết sau dấu hai chấm sau ký hiệu đánh dấu
47
({0:C}, {1:d}, {2:X},…).
TRƯỜNG ĐẠI HỌC KHOA HỌC TỰ NHIÊN TP.HCM
TRUNG TÂM TIN HỌC
Bài 2: Các khái niệm và nguyên tắc cơ bản của NET Frameworkcơ bản của .NET Framework
• Tổng quan về .NET Framework• Các kiểu dữ liệu• Biến và hằng• Các toán tử
48
TRƯỜNG ĐẠI HỌC KHOA HỌC TỰ NHIÊN TP.HCM
TRUNG TÂM TIN HỌC
Biến và Hằng
• Khái niệm• Cách khai báo
49
TRƯỜNG ĐẠI HỌC KHOA HỌC TỰ NHIÊN TP.HCM
TRUNG TÂM TIN HỌC
Biến và Hằng• Khái niệm• Khái niệm−Biến là đối tượng dùng để lưu trữ tạm thời các giá trị trong
quá trình xử lý tính toánquá trình xử lý tính toán
−Biến có thể lưu trữ dữ liệu dạng chuỗi, dạng số, dạng ngày giờ … tuỳ thuộc vào kiểu dữ liệu của biến
−Hằng là những giá trị không thay đổi trong suốt quá trình hoạt động của ứng dụng
−Ví dụ:• So_a, So_b: các biến lưu giá trị 2 số a và b• K t biế l kết ả á hé tí h
50
• Ket_qua: biến lưu kết quả các phép tính• Pi: hằng số lưu giá trị 3.1415 (hằng số Pi)
TRƯỜNG ĐẠI HỌC KHOA HỌC TỰ NHIÊN TP.HCM
TRUNG TÂM TIN HỌC
Biến và Hằng• Một ố l ý khi đặt tê h biế à hằ• Một số lưu ý khi đặt tên cho biến và hằng:− Có ý nghĩa gần với giá trị lưu trữ
ế− Tên biến có phân biệt chữ HOA, chữ thường
− Tuân theo quy tắc đặt tên biến:• Không có khoảng trắng• Không có dấu• Không đặt trùng với các từ khóa• Không đặt trùng với các từ khóa• Không sử dụng các ký tự đặt biệt (#, $, %, +, -, …)• Không bắt đầu bằng số
51
g g
TRƯỜNG ĐẠI HỌC KHOA HỌC TỰ NHIÊN TP.HCM
TRUNG TÂM TIN HỌC
Biến và Hằng• Cá h kh i bá biế• Cách khai báo biến− Cú pháp: Kiểu_dữ_liệu Tên_biến;
− Ví dụ:• int tuoi;• t i di hi• string dia_chi;• double luong;
−Gán giá trị cho biến: Tên biến = giá trị;Gán giá trị cho biến: Tên_biến = giá trị;• Ví dụ: tuoi = 15;
−Chú ý: có thể khai báo và khởi tạo giá trị cho biến cùng lúc
52
Chú ý: có thể khai báo và khởi tạo giá trị cho biến cùng lúc.• Ví dụ: string ho_ten = “Nguyễn Văn An”;
TRƯỜNG ĐẠI HỌC KHOA HỌC TỰ NHIÊN TP.HCM
TRUNG TÂM TIN HỌC
Biến và Hằng• Đặc điểm• Đặc điểm−Kiểu dữ liệu khai báo biến trong C# đều là kiểu đối tượng
ỗ ể ố ề è−Mỗi kiểu đối tượng đều đi kèm:• Thuộc tính (property)• Phương thức (method)• Phương thức (method)
53
TRƯỜNG ĐẠI HỌC KHOA HỌC TỰ NHIÊN TP.HCM
TRUNG TÂM TIN HỌC
Biến và Hằng• Đặ điể• Đặc điểm−Sau khi khai báo kiểu dữ liệu và gán giá trị cho biến, có thể
truy xuất:truy xuất:• Tên biến.Thuộc tính: lấy thông tin liên quan đến đối tượng• Tên biến.Phương thức: đối tượng thực hiện hành độngg ợ g ự ệ ộ g
Ví dụ:int So a = int.Parse(txtSo a.Text);_ ( _ );
MessageBox.Show(“Số a: ” + So_a.ToString());
54
TRƯỜNG ĐẠI HỌC KHOA HỌC TỰ NHIÊN TP.HCM
TRUNG TÂM TIN HỌC
Biến và Hằngằ• Cách khai báo hằng
−Cú pháp
const Kiểu_dữ_liệu Tên_hằng = Giá trị;
−Ý nghĩa• const: từ khoá khai báo hằng số
−Ví dụ:const double PI = 3.14;
55
TRƯỜNG ĐẠI HỌC KHOA HỌC TỰ NHIÊN TP.HCM
TRUNG TÂM TIN HỌC
Bài 2: Các khái niệm và nguyên tắc cơ bản của NET Frameworkcơ bản của .NET Framework
• Tổng quan về .NET Framework• Các kiểu dữ liệu• Biến và hằng• Các toán tử
56
TRƯỜNG ĐẠI HỌC KHOA HỌC TỰ NHIÊN TP.HCM
TRUNG TÂM TIN HỌC
Các toán tử
• Toán tử gán• Toán tử luận lý• Toán tử so sánh• Toán tử số học• Toán tử dịch chuyển bit• Toán tử dịch chuyển bit• Kiểm tra kiểu dữ liệu
57
TRƯỜNG ĐẠI HỌC KHOA HỌC TỰ NHIÊN TP.HCM
TRUNG TÂM TIN HỌC
Các toán tử• Toán tử số học• Toán tử số học
• Toán tử nối chuỗi
58
TRƯỜNG ĐẠI HỌC KHOA HỌC TỰ NHIÊN TP.HCM
TRUNG TÂM TIN HỌC
Các toán tử• Toán tử gán• Toán tử gán
59
TRƯỜNG ĐẠI HỌC KHOA HỌC TỰ NHIÊN TP.HCM
TRUNG TÂM TIN HỌC
Các toán tử• Toán tử gán• Toán tử gán−Ví dụ 1: phép gán các giá trị đơn lẻ
int a b c;int a, b, c;a = 1; // OK.b = a; // OK.
// ỗ ế hả đ khở ớ kh ử da = c; // Lỗi : Biến phải được khởi tạo trước khi sử dụng.1 = a; // Lỗi : Trong phép gán, đích phải là một biến.c = (a + b); // OK.(a + b) = c; // Lỗi : Trong phép gán, đích phải là một biến.
60
TRƯỜNG ĐẠI HỌC KHOA HỌC TỰ NHIÊN TP.HCM
TRUNG TÂM TIN HỌC
Các toán tử• Toán tử gán• Toán tử gán−Ví dụ 2: phép gán các tham chiếu (giả sử đã có class ID)
Id id1 = new Id("Frank" 1);Id id1 = new Id( Frank , 1);Id id2 = new Id("Emma", 2);id2 = id1;
61
TRƯỜNG ĐẠI HỌC KHOA HỌC TỰ NHIÊN TP.HCM
TRUNG TÂM TIN HỌC
Các toán tử• Toán tử gán• Toán tử gán−Ví dụ 3: phép gán với đồng thời nhiều phép gán
int a b c;int a, b, c;a = 1; b = 1; c = 1;
ó hể đ ả hà h ộ â lệ h ớ h ề hé áCó thể được giảm thành một câu lệnh với nhiều phép gán:a = b = c = 1
62
TRƯỜNG ĐẠI HỌC KHOA HỌC TỰ NHIÊN TP.HCM
TRUNG TÂM TIN HỌC
Các toán tử• Toán tử gán• Toán tử gán−Toán tử kết hợp Null
bool? a = true;bool? a = true;bool? b = false;object c = null;C (“|{ }|{ }|{ }|{ }|” ?? ?? ??Console.WriteLine(“|{0,4}|{1,4}|{2,4}|{3,4}|”, a ?? b, a ?? c, c ?? b,
c ?? c);
Kết quả xuất ra màn hình:
63
TRƯỜNG ĐẠI HỌC KHOA HỌC TỰ NHIÊN TP.HCM
TRUNG TÂM TIN HỌC
Các toán tử• Toán tử luận lý điều kiện• Toán tử luận lý điều kiện
64
TRƯỜNG ĐẠI HỌC KHOA HỌC TỰ NHIÊN TP.HCM
TRUNG TÂM TIN HỌC
Các toán tử
• Toán tử luận lý điều kiện−Bảng chân trị:Bảng chân trị:
a b !a a && b a || btrue true false true truetrue false false false truefalse true true false truefalse false true false falsefalse false true false false
65
TRƯỜNG ĐẠI HỌC KHOA HỌC TỰ NHIÊN TP.HCM
TRUNG TÂM TIN HỌC
Các toán tử• Toán tử luận lý điều kiện• Toán tử luận lý điều kiện−Ví dụ:
−Kết quả xuất ra màn hình:
66
TRƯỜNG ĐẠI HỌC KHOA HỌC TỰ NHIÊN TP.HCM
TRUNG TÂM TIN HỌC
Các toán tử• Toán tử logic
Tên Ký hiệu Ý nghĩaTên Ký hiệu Ý nghĩaLogical NOT ~a Phép đảo giá trị bitLogical AND a & b Trả về 1 nếu cả hai bit đều là 1, ngược
lại trả về 0lại trả về 0Logical OR a | b Trả về 0 nếu cả hai bit đều là 0, ngược
lại trả về 1Logical XOR a ^ b Trả về 1 nếu và chỉ nếu một trong haiLogical XOR a b Trả về 1 nếu và chỉ nếu một trong hai
bit là 1, ngược lại trả về 0
67
TRƯỜNG ĐẠI HỌC KHOA HỌC TỰ NHIÊN TP.HCM
TRUNG TÂM TIN HỌC
Các toán tử• Toán tử logic−Bảng chân trị của các toán tử logic
a b ~a a & b a | b a ˆ b1 1 0 1 1 01 1 0 1 1 01 0 0 0 1 10 1 1 0 1 10 0 1 0 0 0
68
TRƯỜNG ĐẠI HỌC KHOA HỌC TỰ NHIÊN TP.HCM
TRUNG TÂM TIN HỌC
Các toán tử• T á tử hé hé á l i• Toán tử ghép phép gán logic
Tên Ký hiệu Ý nghĩaLogic ghép AND b &= a b = (Type) (b & (a))Logic ghép OR b |= a b = (Type) (b | (a))g g p | ( yp ) ( | ( ))Logic ghép XOR b ˆ= a b = (Type) (b ˆ (a))
69
TRƯỜNG ĐẠI HỌC KHOA HỌC TỰ NHIÊN TP.HCM
TRUNG TÂM TIN HỌC
Các toán tử• Toán tử so sánh• Toán tử so sánh
70
TRƯỜNG ĐẠI HỌC KHOA HỌC TỰ NHIÊN TP.HCM
TRUNG TÂM TIN HỌC
Các toán tử• Toán tử dịch chuyển bit
Tên Ký hiệu Ý nghĩaTên Ký hiệu Ý nghĩa
Chuyển dịch trái (Shift left) a << n
Chuyển dịch tất cả các bit về bên trái n lần, phủ đầy 0 các bit phải tương ứng với bit chuyển dịchvới bit chuyển dịch
Chuyển dịch phải (Shift right) a >> n
Chuyển dịch tất cả các bit về bên phải n lần, phủ đầy 0 các bit trái tương ứng với bit chuyển dịch
71
TRƯỜNG ĐẠI HỌC KHOA HỌC TỰ NHIÊN TP.HCM
TRUNG TÂM TIN HỌC
Các toán tử• Toán tử ghép phép gán dịch chuyển bit
Tên Ký hiệu Ý nghĩaTên Ký hiệu Ý nghĩa
Chuyển dịch trái a <<= n b = (Type) (b << (a))
Chuyển dịch phải a >>= n b = (Type) (b >> (a))
72
TRƯỜNG ĐẠI HỌC KHOA HỌC TỰ NHIÊN TP.HCM
TRUNG TÂM TIN HỌC
Các toán tử• Toán tử dịch chuyển bit−Ví dụ:
−Kết quả hiển thị ra màn hình:q ị
73
TRƯỜNG ĐẠI HỌC KHOA HỌC TỰ NHIÊN TP.HCM
TRUNG TÂM TIN HỌC
Các toán tử• Toán tử tiền tố (Prefix) và hậu tố (Postfix)
− Các toán tử tăng (++) và giảm (--) được sử dụng để làm tiền tố và hậu tố Trong trường hợp tiền tố các toán tử tăng hoặc giảm đượchậu tố. Trong trường hợp tiền tố, các toán tử tăng hoặc giảm được đặt trước biến kiểu dữ liệu đơn giản.
− Ví dụ:++a a = a + 1++a a = a + 1--a a = a – 1
int b = 6;int b = 6;int a = ++b; // a = 7, b = 7a = b++; // a = 7, b = 8++b; // a = 7, b = 9
74
; // ,a = - -b; // a = 8, b = 8a = b- -; // a = 8, b = 7
TRƯỜNG ĐẠI HỌC KHOA HỌC TỰ NHIÊN TP.HCM
TRUNG TÂM TIN HỌC
Các toán tử• Toán tử tiền tố (Prefix) và hậu tố (Postfix) −Ví dụ:
−Kết quả xuất ra màn hình:
75
Kết quả xuất ra màn hình:
TRƯỜNG ĐẠI HỌC KHOA HỌC TỰ NHIÊN TP.HCM
TRUNG TÂM TIN HỌC
Các toán tử• Kiểm tra kiểu dữ liệu−Trong C# để kiểm tra kiểu sử dụng toán tử: is và as.
−Cú pháp:Kết_quả_kiểm = Biểu_thức is Kiểu
−Nếu Kết_quả_kiểm là true Biểu_thức có thể chuyển đổi thành công tới Kiểu với việc ép kiểu tường minh hoặc boxing/unboxing ngầm định Nếu Biểu thức là nullhoặc boxing/unboxing ngầm định. Nếu Biểu_thức là null
Kết_quả_kiểm là false.
76
TRƯỜNG ĐẠI HỌC KHOA HỌC TỰ NHIÊN TP.HCM
TRUNG TÂM TIN HỌC
77