1. Trang chủ
  2. » Luận Văn - Báo Cáo

Ngôn ngữ lập trình ngơn ngữ C#

27 1,3K 2
Tài liệu đã được kiểm tra trùng lặp

Đang tải... (xem toàn văn)

Tài liệu hạn chế xem trước, để xem đầy đủ mời bạn chọn Tải xuống

THÔNG TIN TÀI LIỆU

Thông tin cơ bản

Định dạng
Số trang 27
Dung lượng 118,16 KB

Nội dung

Đối tượng object tương ứng với từng cá thể trong loài  Như vậy, mỗi loài có thể có nhiều cá thể khác nhau thuộc loài đó  Trong lập trình truyền thống, bạn cĩ thể khai bo cc biến với ki

Trang 1

a c# là ngôn ngữ đơn giản

Loại bỏ các thành phần ngôn ngữ phức tạp (như MACRO của C++), template, đa kế thừa của Java và C++

C# dựa trên nền tảng của ngôn ngữ C và C++ (các cú pháp và từ khóa hầu hết được kế thừa từ C, C++) Nhưng loại bỏ đi các tốn tử v từ khĩa phức tạp

b c# là ngôn ngữ hiện đại

c# bao gồm đầy đủ các đặc tính của một ngôn ngữ lập trình hiện đại: Hướng đối tượng, xử lý ngoại lệ, thu gom bộ nhớ tự động, kiểu dữ liệu mở rộng, bảo mật m nguồn

c c# là ngôn hướng đối tượng

c# gồm đầy đủ các đặc điểm của một ngôn ngữ hướng đối tượng, bao gồm: sự đóng gói, sự kế thừa, tính đa hình Các đặc điểm này giúp cho việc phát triển các ứng dụng bằng ngôn ngữ C# trở nên bền vững hơn Người phát triển có thể xây dựng ứng dụng theo nhiều lớp, tạo nên một hệ thống hoàn chỉnh và khó đổ vỡ trong khoảng thời gian ít hơn

d c#là ngôn ngữ ít từ khĩa

Sự phức tạp của C++ được tạo nên bởi số lượng đồ sộ các từ khóa và toán tử Chính điều này đa gây ra nhiều khó khăn không cần thiết cho người lập trình C# tránh được nhược điểm này bằng tiêu chí: Càng ít từ khóa càng tốt Theo thống kê, C# chỉ gồm hơn 100 từ khóa nhưng thực hiện được mọi yêu cầu từ đơn giản đến phức tạp

2 Các khi niệm trong C#

Lớp (class), đối tượng (object)

 Trong sinh học cĩ khi niệm lồi (lồi người, loài mèo ) và mỗi cá thể cụ thể trong loài (ông Nguyễn Văn A, con mèo A, con mèo B ) Trong lập trình hướng đối tượng:

1 Lớp (class) tương ứng với loài

2 Đối tượng (object) tương ứng với từng cá thể trong loài

 Như vậy, mỗi loài có thể có nhiều cá thể khác nhau thuộc loài đó

 Trong lập trình truyền thống, bạn cĩ thể khai bo cc biến với kiểu của chng Một cch đơn giản, có thể hiểu:

Trang 2

3 Lớp (class) l kiểu biến

4 Đối tượng (object) là một giá trị tương ứng với kiểu

 Tĩm lại, trong lập trình hướng đối tượng, cc cơng việc của bạn gồm :

5 Khai báo các lớp (gồm các thuộc tính, các phương thức của lớp đó)

6 Khai báo các đối tượng thuộc các lớp

7 Hoạt động của chương trình l sự tc động qua lại giữa các đối tượng

3 Stack v Heap

C# phân chia bộ nhớ thành 2 dạng: Stack & Heap:

 Stack là dạng vùng nhớ dạng vào sau ra trước (các giá trị được đưa vào sau thì được lấy ra

trước) Stack thường sử dụng để lưu các biến tạm (không có chu kỳ sống dài)

 Heap là dạng vùng nhớ được cấp phát cho các biến có chu kỳ sống lâu dài.

Trong ngơn ngữ C v C++:

 Stack được sử dụng để lưu các biến được khai báo trong hàm và chương trình con Mỗi

khi một biến được khai báo trong chương trình con, gi trị của nĩ được lưu vào trong stack Khi thoát khỏi chương trình con, cc gi trị ny sẽ được lấy ra khỏi stack theo thứ tự ngược với thứ tự khai báo

 Heap được sử dụng để lưu các biến được tạo bằng từ khóa new, các lệnh malloc Các

biến này phải được giải phóng bằng các lệnh delete hoặc free khi không sử dụng đến Nguyên tắc này thường gây nhiều lỗi do:

8 Lập trình vin qun giải phĩng biến đ xin cấp pht

4 Kiểu gi trị(value type),kiểu tham chiếu(reference type)

Việc sử dụng vùng nhớ stack và heap của C++ rắc rối, phức tạp và dễ gây lỗi cho chương trình C# đưa ra những cải tiến sau:

 Chia cc kiểu biến thnh 2 kiểu: Kiểu gi trị (value type) v kiểu tham chiếu (reference type)

 Kiểu gi trị (value type) gồm

12 Kiểu cấu trc

Trang 3

1 Cc kiểu số nguyn (byte, int, long)

2 Các kiểu số thực dấu phẩy động (float, double)

3 Cc kiểu số thực thập phn (decimal)

4 Kiểu bool

5 Các struct do người dùng định nghĩa (nên hạn chế dùng kiểu này)

13 Kiểu liệt k (enum)

 Kiểu tham chiếu (reference type) gồm

14 Lớp (class)

15 Giao diện (interface)

16 Ủy thc (delegate)

 Kiểu gi trị l kiểu m khi thực hiện php gn, toàn bộ giá trị của vế phải được sao chép và gán

vào biến bên vế trái Do đặc tính này, giá trị của biến value type thường nằm trong stack (khi các biến này được khai báo trong hàm)

 Kiểu tham chiếu là kiểu mà các biến lưu dữ liệu trên heap Các biến là tham chiếu

(reference – gần giống khái niệm con trỏ trong C & C++) đến dữ liệu trên heap Một dữ liệu có thể có nhiều biến tham chiếu đến Khi thực hiện lệnh gán, phần dữ liệu trên heap không được sao chép mà chỉ có tham chiếu đến dữ liệu này được chép sang vế trái Khi đó, sẽ có thêm 1 biến nữa tham chiếu đến dữ liệu trên heap

Để hiểu r hơn về kiểu giá trị và kiểu tham chiếu, hy quan st ví dụ sau:

5 Biến & Kiểu

C php khai bo biến của C# giống với c php khai bo của C++ Ch ý:

 Biến có thể được khai báo tại:

1 Trong một lớp, khi đó các biến được gọi là biến thành viên của lớp

2 Trong một hàm, khi đó biến có thể khai báo ở bất cứ nơi nào trong hàm, không nhất thiểt phải nằm ở đầu hàm

 Biến được khai báo ở khối chương trình no thì cĩ hiệu lực trong phạm vi của khối đó Khi chương trình chạy ra ngồi khối thì biến khơng cịn tồn tại

 C# giống với C và C++, phân biệt chữ hoa và chữ thường Tên biến cũng phân biệt chữ hoa và chữ thường, do đó bạn phải nhập vào đúng tên biến Rất may, chế độ tự động (auto-complete) của VS2005 rất tốt, bạn hầu như không phải nhập đầy đủ 1 tên biến nào Do đó, khả năng nhầm tên biến chữ hoa chữ thường rất hiếm khi xảy ra

<Kiểu biến> <Tn_biến>;

<Kiểu_biến> <Tn_biến> = <gi trị>;

Trang 4

<Kiểu_biến> <Tn_biến_1>, <Tn_biến_2>;

Ví dụ

string s; // Biến kiểu xu ký tự

double a = 10; // Biến kiểu số thực kp

double a, b, c = 20, d;

Quy ước đặt tên biến

1 Bắt đầu bằng chữ cái, không bắt đầu bằng chữ số

1 Tn biến cĩ thể chứa chữ ci, chữ số, ký tự “_”, nhưng không chứa các ký tự đặc biệt

1 Độ dài tối đa của tên biến là 255 ký tự

Kiểu biến

Biến được sử dụng để lưu các giá trị, giá trị có thể là số (số thứ tự, số người ), có thể là dạng văn bản (xâu ký tự) Ngồi ra biến cĩ thể ở dạng phức tạp, ví dụ mảng: chuỗi các giá trị cùng kiểu sắp xếp liên tiếp, hoặc kiểu dữ liệu do người dùng định nghĩa

Khi bạn đ biết lập trình trn một ngơn ngữ, việc hiểu kiểu biến của một ngơn ngữ khc l tương đối đơn giản

Biến kiểu số

short Số nguyn ngắn 16 bit -32768 32767

float Số thực độ chính xác đơn 32 bit

double Số thực độ chính xác kép 64 bit

ushort Số nguyn ngắn khơng dấu 16 bit

ulong Số nguyn di khơng dấu 64 bit

Biến kiểu xu ký tự

Mỗi ký tự trong my tính tương ứng với một số hiệu Một chuỗi các ký tự ghép với nhau tạo

ra một xâu ký tự (String) Nếu bạn đ quen thuộc với m ASCII của, đặt tương ứng 256 giá trị với 256 ký tự thì xu ký tự của C# cĩ một cht khc biệt: Xu ký tự trong C# l xu ký tự Unicode, mỗi ký tự trong xu ny cĩ thể l 1 trong hơn 60000 ký tự của tất cả các ngôn ngữ

Do đó, vấn đề bảng m, ngơn ngữ trong C# được giải quyết triệt để từ gốc.u

String trong C# được ký hiệu trong cặp ngoặc kp, ví dụ:

string FirstWord;

string SecondWord;

FirstWord = "Hello" ;

SecondWord = "World" ;

Trang 5

string Greeting = FirstWord + SecondWord; // Greeting by giờ l "HelloWorld"

Greeting = FirstWord + " " + SecondWord;

Biến kiểu bool

Kiểu bool là kiểu biến cơ bản, có mặt trong hầu hết các ngôn ngữ Biến logic (bool) chỉ mang hai giá trị là true (đúng) và false (sai)

Biến kiểu bool thường được sử dụng với các toán tử logic (&&, ||, ^, !) Cc biểu thức so

snh trả về gi trị kiểu bool.

Biến kiểu mảng

Mảng l kiểu dữ liệu phức gồm nhiều gi trị cng kiểu sắp xếp lin tiếp nhau Các phần tử

này được truy xuất qua chỉ số Chú ý, chỉ số của mảng C# giống như mảng trong C và C++, được bắt đầu từ 0;

Mảng trong C# rất linh hoạt và được hỗ trợ một số lượng lớn các hàm sắp xếp, tìm kiếm, thm, xĩa

Cú pháp khai báo mảng trong C# như sau

<Kiều phần tử>[] <Tên mảng>; // Mảng chưa được khởi tạo, không sử dụng được

<Kiểu phần tử>[] <Tn mảng> = new <Kiểu phần tử>[<Số phần tử>];

int i; // Biến i kiểu int

string a; // Biến a kiểu string

int[] M; // Biến M kiểu int[] (tức l kiểu biến chứa nhiều số int, kiểu mảng)

Đoạn m dưới đây minh họa sự mềm dẻo của mảng trong C# Trong đó có sử dụng hàm sắp xếp để sắp mảng A theo chiều tăng dần Bạn chú ý rằng khác với mảng trong C++, mảng trong C# đều phải được khởi tạo bằng toán tử new Ngoài ra, bạn có thể dễ dàng lấy kích thước của mảng bằng thuộc tính Length (xem ví dụ) Đây là điều rất thuận lợi so với mảng trong C++ (mỗi mảng phải kèm theo một biến lưu chiều dài của mảng, dễ gây nhầm lẫn khi sử dụng quá nhiều mảng)

int i;

// Xin 100 phần tử cho mảng A

int[] A = new int[100];

// ran: Đối tượng sinh ngẫu nhin

Random ran = new Random();

Trang 6

// gn gi trị ngẫu nhin cho cc phần tử của mảng A

for (i = 0; i < A.Length; i++) A[i] = ran.Next(500);

for (i = 0; i < A.Length; i++) Console.Write( "{0} " , A[i]);

static void Main(string[] args) {

// M được khởi tạo l mảng 2 chiều, mỗi chiều 10 phần tử

int[,] M = new int[10, 10];

// Dng 2 vịng lặp để gn cc phần tử hng i, cột j

// Gi trị được gn l tích của i, j (gần giống bảng cửu chương)

for (int i = 0; i < 10; i++)

for (int j = 0; j < 10; j++) M[i, j] = i * j;

// Ghi gi trị của mảng 2 chiều ra mn hình

// Trong 2 vịng lặp lồng nhau ny, ta sử dụng cc hm

// - GetLowerBound(level) để xác định cận dưới của mảng

// - GetUpperBound(level) để xác định cận trn của mảng

// - level l lớp chỉ số, ví dụ M[i, j]

// - Chỉ số i tương ứng với level 0 (đầu tin)

// - Chỉ số j tương ứng với level 1

for (int i = M.GetLowerBound(0); i <= M.GetUpperBound(0); i++) {

for (int j = M.GetLowerBound(1); j <= M.GetUpperBound(1); j++)

Console Write( "{0, 3}" , M[i, j]);

// Ghi M[i, j] theo quy cch (chiếm 3 ký tự)

Trang 7

Kiểu List<>

Mảng là một trong những kiểu dữ liệu được sử dụng phổ biến nhất, mảng dùng để lưu một danh sách các phần tử cùng kiểu Tuy vậy, hạn chế của mảng là số lượng phần tử cố định (thực tế có thể thay đổi được nhưng phức tạp), việc thêm, xóa phần tử vào mảng tương đối khó khăn

C# cung cấp kiểu dữ liệu List<> (trong đó hai dấu <> thể hiện đây là kiểu dữ liệu có tham

số, trong đó tham số là kiểu phần tử của danh sách (giống với khái niệm lớp mẫu – template – của C++)

 Add(pt) : Thm một phần tử vào cuối danh sách Kiểu của tham số pt phải là kiểu của phần

tử của danh sách đ khai bo

 Remove(pt) : Xóa khỏi danh sách tất phần tử đầu tiên có giá trị bằng pt Chú ý, phương

thức này không nên sử dụng khi ta đ biết số thứ tự của pt trong danh sách (khi đó nên dùng RemoveAt)

 RemoveAt(i) : Xóa khỏi danh sách phần tử có chỉ số i (danh sách cũng giống mảng, chỉ số

bắt đầu từ 0) Phương thức này sẽ nhanh hơn Remove() vì đ biết vị trí của phần tử trong danh sch (khơng phải duyệt cả danh sch)

 Clear() : Xóa toàn bộ các phần tử để trở thành danh sách trống (giống khi mới khởi tạo)

 Insert(i, pt) : Chèn phần tử pt vào trong danh sách tại vị trí i (các phần tử từ vị trí i trở đi sẽ

được đẩy ra lấy chỗ cho phần tử mới)

 ToArray() : Chuyển danh sch thnh dạng mảng Nếu bạn muốn chương trình chạy thật

nhanh thì nn chuyển danh sch ra mảng (vì mảng hoạt động nhanh hơn) Danh sách tuy chậm hơn nhưng lại có ưu điểm là dễ sử dụng, nhiều tiện ích Do đó bạn nên có sự lựa chọn thích hợp giữa các lựa chọn sau:

1 Sử dụng mảng để có tốc độ cao (khi xử lý tính toán)

Cc tốn tử 2 ngơi

Trang 8

Biểu thức l sự kết hợp của cc gi trị, biến, tốn tử với nhau Biểu thức biểu diễn trn my tính

cĩ dạng gần giống với biểu thức tốn học m chúng ta thường sử dụng: Các toán tử không được thực hiện theo thứ tự từ trái sang phải mà có sự ưu tiên giữa các toán tử, bảng sau đây liệt kê thứ tự ưu tiên (từ cao đến thấp) của các toán tử trong cùng một biểu thức

Trang 9

|| Ít nhất một trong hai tốn hạng đúng 2 > 3 || 6 < 7 True

Các cấu trúc điều khiển

Chương trình muốn hoạt động theo sự điều khiển không chỉ có các lệnh gán mà cịn phải gồm các lệnh điều khiển (rẽ nhánh, lặp ) Các lệnh này cho phép chương trình hoạt động theo một kịch bản xác định

Cấu trc if rt gọn

if (<Điều kiện>) <Lệnh>;

Kiểm tra điều kiện (biểu thức logic)

 Điều kiện phải được đặt trong cặp ngoặc

 Điều kiện là 1 biểu thức logic

 Nếu điều kiện là đúng (true) thì thực hiện <Lệnh>

 Nếu điều kiện sai (false) thì bỏ qua, khơng thực hiện cc lệnh

 Nếu muốn thực hiện nhiều lệnh, đưa các lệnh này vào trong cùng 1 khối lệnh bắt đầu bằng { và kết thúc bằng }

Cấu trúc if đầy đủ

if (<Điều kiện> )

<Lệnh nếu điều kiện đúng>;

else

<Lệnh nếu điều kiện sai>;

Kiểm tra điều kiện

 Nếu điều kiện đúng, thực hiện nhánh đúng

 Nếu điều kiện sai, thực hiện nhánh sai

 Ch ý:

17 Nếu là lệnh đơn, kết thúc nhánh đúng phải bằng dấu chấm phẩy

18 Nếu nhánh đúng hoặc nhánh sai là nhiều lệnh, đưa chúng vào trong 1 khối chương trình bằng cặp ngoặc { }

Cấu trc rẽ nhiều nhnh switch

Trang 10

Để thực hiện nhiều lệnh trong vịng lặp, ta nhĩm cc lệnh vo trong một khối chương trình bằng cặp ngoặc {}

Vịng lặp do while

do

<Lệnh lặp>;

while (<Điều kiện>);

Khc với vịng lặp while, vịng lặp do while thực hiện <Lệnh lặp> trước rồi mới kiểm tra điều kiện Từ đặc điểm này, có thể khẳng định <Lệnh lặp> sẽ được thực hiện tối thiểu 1 lần (kể cả trong trường hợp <Điều kiện> là sai)

Ch ý với những người quen sử dụng Pascal, vịng lặp do while sẽ lặp lại trong trường hợp <Điều kiện> là đúng (phân biệt với repeat until của Pascal, lặp lại nếu điều kiện sai)

Vịng lặp for

for ([Lệnh khởi tạo] ; [Điều kiện kiểm tra] ; [Lệnh thay đổi])

<Lệnh lặp>;

Vịng lặp for sẽ thực hiện cc cơng việc sau đây:

 Khởi đầu vịng lặp bằng cch gọi [Lệnh khởi tạo] (thường là lệnh khởi tạo biến đếm)

 Lặp đi lặp lại các bước sau

19 Kiểm tra [Điều kiện kiểm tra], nếu sai thì thốt khỏi vịng lặp, nếu đúng thì thực hiện tiếp cc bước tiếp sau

20 Thực hiện <Lệnh lặp>

21 Thực hiện [Lệnh thay đổi] (thường là các lệnh tăng hoặc giảm biến đếm)

Cấu trc vịng lặp for của C# giống với cấu trc for của C, khi qut hơn nhiều so với cấu trúc for của Pascal

Trang 11

Ba thnh phần trong vịng lặp for đều được để trong ngoặc móc, có nghĩa là các thành phần này có thể không cần thiết Ở trường hợp đơn giản nhất, vịng lặp for sẽ khơng cĩ cả 3 thnh phần ny Khi đó, nếu không có lệnh thoát khỏi vịng lặp ở bn trong <Lệnh lặp>, vịng lặp l vịng lặp vơ hạn.

Biến <phần tử> phải được khai báo kiểu bên trong vịng lặp, chỉ cĩ gi trị trong phạm vi vịng lặp

Vịng lặp foreach gip việc lập trình trở nn đơn giản, dễ hiểu hơn Hy xem ví dụ sau:

R rng, đoạn chương trình trn cùng chức năng với đoạn chương trình in số v tính tổng (ví dụ của vịng lặp for) Tuy nhin, đoạn chương trình viết bằng foreach đơn giản và dễ hiểu hơn nhiều

Theo khuyến co của Mircosoft, bạn khơng nn dng vịng lặp foreach ở những nơi cần tốc độ thực thi cao (do vịng lặp ny chạy chậm hơn vịng lặp for)

Hàm – Phương thức

Cũng như tất cả các ngôn ngữ lập trình khc, khi cĩ nhiều cơng việc được thực hiện lặp đi lặp lại bởi cùng một đoạn code, cách tốt nhất là đưa đoạn code này vào một chương trình con để có thể sử dụng lại nhiều lần Trong Pascal, chương trình con cĩ thể l thủ tục

(procedure) hoặc hm (function) Đối với C#, các hàm bao giờ cũng là phương thức của

một lớp xác định nào đó:

 Gọi hàm phải thông qua đối tượng nếu hàm khai báo thường (không có từ khĩa static)

 Gọi hm phải thơng qua lớp nếu hm khai bo static (hm tĩnh)

[public | private | protected] [static] <Kiểu hm> <Tn hm> (danh sch tham số) {

<cc lệnh>

return <gi trị trả về>;

<cc lệnh>

}

 Giống như C, nếu hàm không trả về gi trị thì <Kiểu hm> l void

 Cc từ khĩa public hoặc private chỉ ra phạm vi của hm.

3 Hm public là hàm có thể được gọi từ bất cứ đâu trong chương trình.

4 Hm private là hàm chỉ có thể gọi được trong lớp khai báo hàm đó

5 Hm protected l hm chỉ cĩ thể gọi được trong lớp khai báo hàm hoặc các lớp kế thừa

lớp này

 Từ khĩa static

Trang 12

6 Hm bình thường không khai báo từ khóa static Khi đó hàm là phương thức của đối

tượng, có thể sử dụng các biến thành viên khai báo bên trong đối tượng Hàm bình

thường được gọi thơng qua đối tượng.

7 Hm khai bo static l hm tĩnh Hm l phương thức của lớp, chỉ có thể sử dụng các biến

thành viên của lớp (cũng khai báo static) mà không thể sử dụng các biến thành viên của bất cứ đối tượng nào trong lớp (vì hm khơng thuộc đối tượng) Hàm tĩnh được gọi

 Tham chiếu (ref)

Khai bo int Tinh(int a); int Tinh(out int a); int Tinh(ref int a);

Gọi hm Tham số l một biểu thức

Tinh(10);

Tinh(b+10);

Tham số l một biến int b;

Tinh(out b);

Tham số là 1 biến, vừa là đầu vào, vừa là đầu ra nên phải khởi tạo giá trị ban đầu:

Tham số đưa vào là một biến, mọi thay đổi giá trị của tham số bên trong hàm sẽ thay đổi biến này

Tham số đưa vào là một biến, mọi thay đổi giá trị của tham số bên trong hàm sẽ thay đổi biến này

Sử dụng Truyền gi trị từ bn ngồi vo hm Truyền kết quả từ bn trong hm

ra ngồi

Truyền gi trị từ bn ngồi vo bn trong

hm Hm truyền lại kết quả từ bn trong ra ngồi

Ngoại lệ (Exception)

Khi bạn viết một chương trình, mục tiêu cao nhất là chương trình hoạt động chính xác và không bị lỗi Tuy nhiên, lỗi chương trình l khơng thể trnh khỏi vì người lập trình khơng bao giờ lường trước được mọi khả năng của hệ thống Sau đây là một số ví dụ về những trường hợp người lập trình ít khi lường trước hoặc không thể lường trước được:

 Lỗi không xuất phát từ chương trình do chng ta pht triển m lại xuất pht từ cc thư viện được

sử dụng bởi chương trình

 Tài nguyên hệ thống không đáp ứng được yêu cầu (bộ nhớ không đủ, ổ cứng bị đầy, thiết

bị đang sử dụng bị rút ra )

Trang 13

Đối với các ngôn ngữ thế hệ cũ, mỗi khi gặp lỗi chương trình cĩ thể dừng ngay v tồn bộ dữ liệu của người dùng bị mất Để tránh trường hợp xấu này, các ngôn ngữ thế hệ mới cung cấp cơ chế quản lý ngoại lệ (Exception).

C php của việc bắt v xử lý lỗi được mô tả như sau:

2 Lập trình với MFC: Visual C được cung cấp một loạt các lớp nền tảng, người lập trình C++ cĩ thể sử dụng cc lớp ny để tạo giao diện dễ dàng hơn nhiều so với sử dụng API MFC được sử dụng kết hợp với ClassWizard tạo cơ chế visual cho phép người lập trình "vẽ" giao diện thay vì dng dịng lệnh

3 Lập trình với Visual Basic: VB cung cấp cch thức dễ dng nhất để tạo giao diện (so với 2 phương pháp trước) Người dùng dễ dàng tạo các form, đưa vào đó các control và viết m lệnh cho cc control ny Nhược điểm của phương pháp này lại nằm trong ngôn ngữ, VB không phải là ngôn ngữ hướng đối tượng nên việc tạo các control do người dùng định nghĩa là rất khó khăn Đặc biệt không thể tạo được các control trong quá trình chạy chương trình (runtime)

.NET kết hợp toàn bộ các ưu điểm của các phương pháp trên Việc tạo giao diện với NET

có những đặc điểm sau:

4 Dễ dàng: Giống như VB, người dùng có thể dễ dàng dùng chuột để vẽ các control trn form

Ngày đăng: 06/11/2013, 05:20

HÌNH ẢNH LIÊN QUAN

// Gi trị được g nl tích của i, j (gần giống bảng cửu chương)             for (int i = 0; i &lt; 10; i++) - Ngôn ngữ lập trình ngơn ngữ C#
i trị được g nl tích của i, j (gần giống bảng cửu chương) for (int i = 0; i &lt; 10; i++) (Trang 6)

TỪ KHÓA LIÊN QUAN

TÀI LIỆU CÙNG NGƯỜI DÙNG

TÀI LIỆU LIÊN QUAN

w