Lập trình .NET và C#
Lecture 3: Nền tảng ngôn ngữ C# TS Đào Nam Anh UTM, Khoa KH&CN
1
Resources
John Connell. Coding Techniques for Microsoft Visual Basic .NET. Microsoft Press, 2002.
(cid:1) Các giải pháp lập trình C#, Nguyễn Ngọc Bình Phương - Thái Thanh Phong (cid:1) Allen Jones. C# Programmer's Cookbook. Microsoft Press, 2004 (cid:1)
(cid:1) Harvey M. Deitel, Paul J. Deitel, & Tem R. Nieto. Visual Basic .NET How to
(cid:1)
Program, Second Edition. Prentice Hall, 2002. Jose Mojica. C# and VB .NET Conversion Pocket Reference. O'Reilly, 2002. James Avery. Ten Must-Have Tools Every Developer Should Download Now. MSDN Magazine, 2004.
(cid:1)
Microsoft Press, 2003.
(cid:1) Karl Moore. The Ultimate VB.NET and ASP.NET Code Book. Apress, 2003 (cid:1) Matthew MacDonald. Microsoft Visual Basic .NET Programmer's Cookbook.
Cookbook. Sams Publishing, 2003.
(cid:1) Mark Schmidt & Simon Robinson. Microsoft Visual C# .NET 2003 Developer's
Hồ Chí Minh, 2005.
(cid:1) Dương Quang Thiện. Lập trình Visual C# thế nào? Nhà xuất bản Tổng Hợp TP.
Visual Basic .NET. Nhà xuất bản Giao thông Vận tải, 2006
(cid:1) Nguyễn Ngọc Bình Phương & Lê Trần Nhật Quỳnh. Các giải pháp lập trình
www.developersdex.com, www.windowsforms.net, www.gotdotnet.com, www.codeguru.com, www.developerfusion.com
2
(cid:1) www.msdn.microsoft.com, www.codeproject.com, www.msd2d.com,
(cid:1) Kiểu dữ liệu (cid:1) Biến và hằng (cid:1) Biểu thức (cid:1) Khoảng trắng (cid:1) Câu lệnh (cid:1) Toán tử (cid:1) Namespace (cid:1) biên dịch
3
Kiểu dữ liệu
(cid:1) Kiểu dữ liệu giá trị (value) và (cid:1) kiểu dữ liệu tham chiếu (reference).
4
Kiểu dữ liệu Ki(cid:3)u d(cid:6) li(cid:8)u xây d(cid:12)ng s(cid:16)n
Số byte .Net Mô tả C#
Số nguyên dương không dấu từ 0-255 byte 1 Byte
Ký tự Unicode char 2 Char
Boolean Giá trị logic true/ false bool 1
sbyte 1 Sbyte Số nguyên có dấu ( từ -128 đến 127)
short 2 Int16 Số nguyên có dấu giá trị từ -32768 đến 32767.
ushort 2 Uịnt16 Số nguyên không dấu 0 – 65.535
int 4 Int32 Số nguyên có dấu –2.147.483.647 và 2.147.483.647
uint 4 Uint32 Số nguyên không dấu 0 – 4.294.967.295
5
float 4 Single Kiểu dấu chấm động, giá trị xấp xỉ từ 3,4E- 38 đến 3,4E+38, với 7 chữ số có nghĩa..
Kiểu dữ liệu Ki(cid:3)u d(cid:6) li(cid:8)u xây d(cid:12)ng s(cid:16)n
C# Số byte .Net Mô tả
double Double 8
Kiểu dấu chấm động có độ chính xác gấp đôi, giá trị xấp xỉ từ 1,7E-308 đến 1,7E+308, với 15,16 chữ số có nghĩa.
decimal Decimal 8
long
Int64
Có độ chính xác đến 28 con số và giá trị thập phân, được dùng trong tính toán tài chính, kiểu này đòi hỏi phải có hậu tố “m” hay “M” theo sau giá trị.
8
ulong
Uint64
Kiểu số nguyên có dấu có giá trị trong khoảng : -9.223.370.036.854.775.808 đến 9.223.372.036.854.775.807
6
8 Số nguyên không dấu từ 0 đến 0xffffffffffffffff
Kiểu dữ liệu
(cid:1) Chọn kiểu dữ liệu phù hợp
7
Các kiểu k. tự đặc biệt.
(cid:1) \’ Dấu nháy đơn (cid:1) \” Dấu nháy kép (cid:1) \\ Dấu chéo (cid:1) \0 Ký tự null (cid:1) \a Alert (cid:1) \b Backspace (cid:1) \f Sang trang form feed (cid:1) \n Dòng mới (cid:1) \r Đầu dòng (cid:1) \t Tab ngang (cid:1) \v Tab dọc
8
Kiểu dữ liệu Chuy(cid:3)n đ(cid:20)i các ki(cid:3)u d(cid:6) li(cid:8)u
(cid:1) ngầm định
short x = 10; int y = x; // chuyển đổi ngầm định
short x; int y = 100; x = y; // lỗi !!! (cid:1) tường minh short x; int y = 500; x = (short) y;
9
Bi(cid:25)n và h(cid:28)ng
(cid:1) Biến có thể được gán giá trị và cũng có thể thay đổi giá trị khi thực hiện các lệnh trong chương trình.
Int Abc; Int aa = 0; Abc = aa +1;
10
Bi(cid:25)n và h(cid:28)ng
(cid:1) Hằng cũng là một biến nhưng giá trị của hằng
không thay đổi.
const int k=6; enum empire : int {
a=2, b=3, c=4
} int z = empire.a;
11
Ki(cid:3)u chu(cid:29)i ký t(cid:12)
(cid:1) string cvb = “It’s a nice day, isn’t it”;
12
Đ!nh danh
(cid:1) cú pháp lạc đà (camel notation) bắt đầu bằng
ký tự thường để đặt tên cho các biến
(cid:1) cú pháp Pascal (Pascal notation) với ký tự đầu tiên hoa cho cách đặt tên hàm và hầu hết các định danh còn lại.
(cid:1) C# phân biệt các ký tự thường và ký tự hoa
13
Bi(cid:3)u th#c
(cid:1) đánh giá một giá trị gọi là biểu thức (cid:1) B =30;
14
Kho%ng tr'ng (whitespace)
(cid:1) C# bỏ qua khoảng trắng
15
Câu l(cid:8)nh (statement)
(cid:1) một chỉ dẫn lập trình đầy đủ được gọi là câu
lệnh.
(cid:1) Chương trình bao gồm nhiều câu lệnh tuần
tự với nhau.
(cid:1) Mỗi câu lệnh phải kết thúc với một dấu chấm
phẩy
16
Phân nhánh không có đi1u ki(cid:8)n
(cid:1) gọi một hàm và (cid:1) dùng từ khoá phân nhánh không điều kiện:
goto, break, continue, return
17
Phân nhánh có điều kiện
(cid:1) Phân nhánh có điều kiện được tạo bởi các
lệnh điều kiện.
(cid:1) Các từ khóa : if, else, switch .
If (i<0) {
K=1;
} else {
K=3;
}
18
Switch (sdf) {
Case 1: Break;
Default:
Break;
}
19
Câu l(cid:8)nh l2p
For (int i=0; i<10; i++) { } While (t<20) { } Do { } While (f>90);
20
Câu l(cid:8)nh l2p
int[] intArray = {1,2,3,4,5,6,7,8,9,10}; foreach( int item in intArray) { Console.Write(“{0} ”, item); }
(cid:1) Break khi được sử dụng sẽ đưa chương trình thoát
khỏi vòng lặp và tiếp tục thực hiện các lệnh tiếp ngay sau vòng lặp.
(cid:1) Continue ngừng thực hiện các công việc còn lại của vòng lặp hiện thời và quay về đầu vòng lặp để thực hiện bước lặp tiếp theo
21
Toán t4
(cid:1) +-*/ (cid:1) % (cid:1) += (cid:1) -= (cid:1) *= (cid:1) /= (cid:1) %= (cid:1) A++ (cid:1) ++A
22
Toán t4 quan h(cid:8)
(cid:1) == (cid:1) != (cid:1) > (cid:1) < (cid:1) >= (cid:1) <=
23
Toán t4 logic
&& || !
24
Đ6 ưu tiên toán t4
25
Đ6 ưu tiên toán t4
26
Toán t4 ba ngôi
(cid:1)
(cid:1) maxValue = value1 > value2 ? value1 :
value2;
27
Namespace
(cid:1) sử dụng đặc tính namespace trong ngôn ngữ C#, nhằm tránh sự xung đột giữa việc sử dụng các thư viện khác nhau từ các nhà cung cấp.
(cid:1) khai báo sử dụng namespace trong chương
trình:
using < Tên namespace >
28
namespace
(cid:1) namespace
29
ch; d
(cid:1) khi biên dịch thì toàn bộ chương trình sẽ
được biên dịch.
30
Phân bi(cid:8)t ch(cid:6) thư=ng và ch(cid:6)
hoa
(cid:1) giống như C/C++, C# là ngôn ngữ phân biệt chữ
thường với chữ hoa
(cid:1) C# không giống như VB, môi trường phát triển C#
sẽ không tự sửa các lỗi này
(cid:1) Qui ước cho cách đặt tên biến, hằng, hàm, và nhiều
định danh khác nữa. Cú pháp lạc đà (camel
notation) cho tên biến và cú pháp Pascal cho hàm,
hằng, và thuộc tính.
(cid:1) myDictionary theo cách đặt tên cú pháp lạc đà.
(cid:1) DrawLine, thuộc tính ColorBackground theo cách
đặt tên cú pháp Pascal.
31
Question
32
(cid:1) khi biên dịch thì toàn bộ chương trình sẽ
được biên dịch.
30
Phân bi(cid:8)t ch(cid:6) thư=ng và ch(cid:6) hoa
(cid:1) giống như C/C++, C# là ngôn ngữ phân biệt chữ
thường với chữ hoa
(cid:1) C# không giống như VB, môi trường phát triển C#
sẽ không tự sửa các lỗi này
(cid:1) Qui ước cho cách đặt tên biến, hằng, hàm, và nhiều
định danh khác nữa. Cú pháp lạc đà (camel notation) cho tên biến và cú pháp Pascal cho hàm, hằng, và thuộc tính.
(cid:1) myDictionary theo cách đặt tên cú pháp lạc đà. (cid:1) DrawLine, thuộc tính ColorBackground theo cách
đặt tên cú pháp Pascal.
31
Question
32