Chương 3
Ngôn ngữ lập trình C#
Nội dung bài học
Biến và hằng
Các đối tượng đơn giản
Xử lý chuyển kiểu
Các phép toán.
Vòng lặp
Cấu trúc, mảng
Các lớp cơ sở
…
Ứng dụng đầu tiên
Tạo một chương trình ứng dụng đơn giản
Hiển thị kết quả chương trình
Nêu đặc thù của chương trình - kết hợp với
ASP.NET
Biến
Một biến dùng để lưu trữ giá trị mang một
kiểu dữ liệu nào đó
Cú pháp: [modifier] datatype identifer;
Ví dụ: public int i; hoặc int i;
Phạm vi hoạt động
Là vùng đoạn mã mà từ đấy biến có thể
được truy xuất
Không thể có hai biến cùng mang một
tên trùng nhau
Hằng
Là một biến nhưng không cho phép thay
đổi giá trị
Cú pháp : const datatype identifer ;
Ví dụ: const int a = 100;
Vì sao dùng hằng
Đọc chương trình dễ dàng hơn
Dễ sửa chương trình hơn
Sửa lỗi dễ dàng hơn
Điều kiện IF
if(condition)
{
Do something;
}
else
{
Do something;
}
Điều kiện IF(tt)
Ví dụ:
protected void Page_Load(object sender,
EventArgs e)
{
int timeNow = DateTime.Now.Hour;
if (timeNow < 12)
Response.Write("Chào buổi sáng");
else if (timeNow < 18)
Response.Write("Chiều buổi chiều");
else Response.Write("Chào buổi tối");
}
Switch
switch (var)
{
case value1:
do something;
break;
case value2:
do something;
break;
…
default:
do something;
break;
}
switch
Ví dụ:
protected void Page_Load(object sender, EventArgs e)
{
int monthNow = DateTime.Now.Month;
switch (monthNow)
{
case 1:
Response.Write("Tháng giêng"); break;
case 2:
Response.Write("Tháng hai"); break;
…
default:
Response.Write("Bạn nhập vào số không phải là
tháng");
break;
}
}
Vòng lặp
For
for (initializer; condition; iterator)
statement(s)
Do …While
do
{
statement(s);
} while (condition);
While
while (condition)
statement(s);
Vòng lặp (tt)
Ví dụ:
Viết hàm tính tổng S= 1+2+3+…+ (n-1)+ n
protected void Page_Load(object sender,
EventArgs e)
{
int sumNumber = 0;
int maxNumber = 10;
for (int i = 1; i < maxNumber; i++)
sumNumber += i;
Response.Write(sumNumber);
}
Các lệnh điều kiện khác
Goto: Nhảy đến thực hiện các lệnh từ vị trí
nhãn
Cú pháp: Goto: label;
Break: Thoát khỏi vòng lặp, không thực
hiện các lệnh sau nó
Continue: Khởi động lại vòng lặp
Return: Thoát khỏi hàm chứa nó, nếu hàm
chứa câu lệnh return có tham số thì sau
return phải là một giá trị có kiểu tương ứng
với kiểu dữ liệu trả về của hàm.
Cấu trúc chương trình
Lớp
Cấu trúc
Phương thức
Mảng
Toán tử
Lớp
Là một khuôn mẫu thiết yếu mà chúng ta cần
tạo ra đối tượng
Ví dụ:
class KhachHang
{
public int MaKhachHang;
public string HoLot;
public string Ten;
}
Truy cập và sử dụng
KhachHang kh = new KhachHang();
kh.Ten = "Hùng";
Phương thức
Là một thành phần của lớp nhằm thực thi một
nhiệm vụ nào đó.
Ví dụ:
public int max3Numbers(int a, int b, int c)
{
if (a > b && a > c) return a;
else if (b > c) return b;
return c;
}
Truy cập và sử dụng
int maxValue = max3Numbers(5, 10, 7);
(Phương thức nằm trong lớp hoặc trong
namespace khác)
Cấu trúc
Là một cấu trúc dữ liệu lưu trữ các đối tượng.
Ví dụ:
struct KhachHang
{
public const int soThangGuiHoaDon = 1;
public int MaKhachHang;
public string HoLot;
public string Ten;
}
Truy cập và sử dụng
KhachHang kh;
kh.Ten = "Hùng";
Mảng
Là một cấu trúc dữ liệu cấu tạo bởi một
số biến được gọi là những phần tử mảng.
string[] a = new string[3];
a[0] = “Dữ liệu 1";
a[1] = “Dữ liệu 2";
a[2] = “Dữ liệu 3";
string[][] a = new string[3][3];
a[0][0] = “Dòng 1 cột 1";
a[0][1] = “Dòng 1 cột 2";
a[0][2] = “Dòng 1 cột 3";
string[] sinhVien = new string[]{
"Nguyễn Văn Tèo", "Lê Văn Tí", "Nguyễn Thị Tẹo"
};
Mảng (tt)
Các phương thức cơ bản
Length: Lấy chiều dài mảng.
Clone: Copy cấu trúc và dữ liệu mảng sang một đối
tượng mới.
Lớp xử lý mảng
o
Lớp System.Array
o
Các phương thức cơ bản để xử lý mảng: Sort,
Reverse …
Duyệt mảng:
foreach (đối tượng name in mảng)
{
Xử lý đối tượng name
}
for (int vitri=0; vitri< mảng.Length; vitri++)
{
Xử lý đối tượng mảng[vitri]
}
Toán tử
Là các dấu hiệu thông báo cho máy tính
thực hiện các phép toán theo quy ước.
Category Operator
Phép toán + - * / %
Phép logic & | ^ ~ && || !
Phép cộng chuỗi +
Phép tăng, giảm ++
Bit shifting << >>
Phép so sánh == != < > <= >=
…
Shortcut Operator Tương đương
x++, ++x x = x + 1
x , x x = x - 1
x += y x = x + y
x -= y x = x – y
x *= y x = x * y
x /= y x = x / y
… …
Chuyển kiểu
Dùng để chuyển đổi dữ liệu sang một kiểu
khác.
Có hai cách chuyển kiểu
o
Ép kiểu
double i = 123456.7;
int j = (int)i;
Response.Write(j);
o
Chuyển kiểu
int k = Convert.ToInt32("123456");
Response.Write(k);
Namespace
Là đối tượng phát sinh để nhóm các lớp
Các namespace khác nhau có thể có các
lớp giống nhau.
Câu lệnh using, khai báo sử dụng mặc định
tất cả các lớp trên namespace đó mà không
cần phải đánh tên namespace đó.
using NamespaceName
Bí danh, tạo ra một tên gọi mới thay thế
cho tên của namespace cũ nhằm tiện lợi
hơn trong quá trình viết mã.
using alias = NamespaceName;
Ghi chú
Là phần mã lệnh (không có chức năng thực
thi) thêm vào chương trình nhằm chú thích
cho những đoạn mã lệnh đã viết.
Ví dụ
// This is a single-line comment
/* This comment
spans multiple lines */
Response.Write(/*Please don't do this!*/"This will
compile");
DoSomething(Width, /*Height*/ 100);
string s = "/* This is just a normal string */";
Định danh và từ khoá
abstract do implicit params switch
as double in private this
base else int protected throw
bool enum interface public true
break event internal readonly try
byte explicit is ref typeof
case extern lock return uint
catch false long sbyte ulong
char finally namespace sealed unchecked
checked fixed new short unsafe
class float null sizeof ushort
const for object stackalloc using
continue foreach operator static virtual
decimal goto out string volatile
default if override struct void
delegate while
Các lớp cơ sở
Object, đây là lớp chung mà cá lớp khác
được thừa kế.
String, đây là lớp cơ sở dùng để lưu trữ và
xử lý chuỗi các ký tự.
Object
Phương thức Mục đích
string ToString()
Trả về 1 chuỗi đại diện cho đối tượng
bool Equals(object obj)
So sánh đối tượng này với 1 đối tượng
khác
bool Equals(object objA,
object objB)
So sánh 2 đối tượng
bool
ReferenceEquals(object
objA, object objB)
So sánh các tham chiếu đối tượng để
xem chúng có chỉ đến cùng đối tượng
Type GetType()
Trả về 1 đối tượng dẫn xuất từ
System.Type mà đưa ra chi tiết kiểu
dữ liệu.
void Finalize()
Hàm hủy ( Destructor)