Tải bản đầy đủ (.ppt) (36 trang)

Bài 1: Giới thiệu ngôn ngữ lập trình C#

Bạn đang xem bản rút gọn của tài liệu. Xem và tải ngay bản đầy đủ của tài liệu tại đây (1.2 MB, 36 trang )


LẬP TRÌNH HƯỚNG ĐỐI TƯỢNG
Bài 1 Giới thiệu ngôn ngữ lập trình C#
Nội dung
Giới thiệu C#
.NET và C#
Ví dụ đơn giản – Giải thích
Hướng dẫn sử dụng Visual Studio.NET
Một số ví dụ khác

Giới thiệu C#
Ngôn ngữ C/C++ : viết mã, biên dịch thành dạng
nhị phân  chỉ thực hiện trên 1 hệ điều hành cụ
thể
Có khả năng xâm phạm hệ thống, gây ra các lỗi hệ
thống  ‘treo’, không bảo mật
Cơ chế cấp phát bộ nhớ và quản lý biến con trỏ !!!

Ưu điểm của C# và .NET
Chương trình C# được biên dịch thành 1 mã
trung gian Microsoft Intermediate Language-
MSIL . Sau đó được thi hành trong môi
trường CLR (Common Language Runtime),
từ đó chuyển sang mã lệnh tương ứng hệ
điều hành
Môi trường .NET cho phép nhiều ngôn ngữ chia
sẻ chung thư viện sử dụng (C#,VB.NET)
Chương trình C#,VB.NET thi hành bên trong
CLR  không có khả năng ‘xâm phạm’ hệ
thống : bảo mật, an toàn,…


Môi trường .Net và C#

Hỗ trợ xuyên ngôn ngữ - Cross Language
Support.
Tất cả ngôn ngữ .NET đều dựa trên cùng 1 hệ
thống kiểu cơ bản làm nền tảng. Do vậy chúng
có thể sử dụng dễ dàng, hoặc tích hợp cùng
với các mã lệnh viết bằng 1 ngôn ngữ .NET
khác. Ngôn ngữ NET bao gồm C#, Visual
Basic.Net và managed C++.

Sử dụng các chuẩn chung trên Internet
.Net hỗ trợ cho ngôn ngữ XML, là dạng thức
định dạng thông tin trên Internet. Ngoài ra
cũng tích hợp hỗ trợ cho mô hình SOAP.

Sử dụng Metadata có khả năng lắp ghép.
Các thành phần của NET được thiết kế như các
thành phần có thể lắp ghép được do vậy tạo
thuận lợi cho người lập trình.


Thi công dễ dàng
Dựa vào tính năng metadata.

Kiểm tra kiểu dữ liệu - Type Checking
CLR-common language runtime-sẽ tiến hành
kiểm tra chặt chẽ các đối tượng được sử
dụng , tất cả các đối tượng đều bắt nguồn
từ 1 một lớp tổ tiên chung là object – tương

tự như trong Java

Quản lý bộ nhớ và thu gom rác(Memory
Management, Garbage Collection)CLR cũng
quản lý bộ nhớ, thu gom rác. Thu gom rác
tự động thực hiện giải phóng 1 đối tượng khi
phát hiện đối tượng không còn sử dụng.

Ví dụ đơn giản C#
// Hello World - A first program
class HelloWorld
{
public static void Main()
{
System.Console.WriteLine("Hello World");
}
}

Từ khóa class bắt đầu phần định nghĩa lớp. Lớp có thể
xem là 1 tổ chức dữ liệu mở rộng chứa các phương thức
(methods) cùng các thành phần thuộc tính
(members,properties).
Thông thường tên lớp thường sử dụng ký tự hoa ở đầu
mỗi từ. Do vậy trong ví dụ trên tên lớp của ta là
HelloWorld hơn là helloWorld, helloworld hay
hElLoWoRld.
Lưu ý : Trong C#, 1 lớp được định nghĩa trong 1 tập tin
(khác với C++ thường có 2 tập tin:tập tin khai báo dùng
để include và tập tin cài đặt.
Trong C# không kết thúc định nghĩa lớp bằng 1 dấu ;

như trong C++.

Phương thức Main
Bên trong phần định nghĩa lớp HelloWorld có phương
thức Main.
Một phương thức có thể gọi thi hành nhằm thực hiện 1
nhiệm vụ nào đó. Trong ví dụ này phương thức Main
sẽ in chuỗi "Hello World".
Phương thức Main là 1 phương thức đặc biệt trong C#,
đây chính là ‘điểm vào’ (entry point – phương thức đầu
tiên được thi hành) trong 1 chương trình. Khi gọi thi
hành 1 chương trình C# thì phương thức Main sẽ là
phương thức thi hành đầu tiên.

Từ khóa public :mô tả phạm vi hoạt động của 1 thành phần
hay 1 phương thức thuộc 1 lớp. Trong ví dụ này, hàm
Main có thể được gọi thi hành từ bất kỳ nơi đâu trong
chương trình. (Các từ khóa khác có liên quan sẽ bàn thảo
sau)
Từ khóa static : mô tả hàm Main có thể được gọi thi hành
ngay mà không cần thiết phải tạo 1 thể hiện (1 đối tượng)
của lớp.
Từ khóa void : tương tự như C/C++.
Lưu ý : Tạm thời ta chỉ cần quan tâm khai báo hàm Main như
sau là đủ
static public void Main()
public , static ???

Lưu ý với C/C++ Programmers:
Ký tự đầu tiên của main là ký tự hoa. Trong C/C+

+, nó là ký tự thường.
Lưu ý với C++ Programmers: Hàm Main định nghĩa
bên trong 1 lớp , Tương tự như Java, hoàn toàn
không có 1 hàm nào nằm ngoài 1 lớp.
Xem dòng lệnh sau :
System.Console.WriteLine("Hello World");
-Gọi thực hiện phương thức WriteLine của lớp
Console trong không gian tên System với tham
số của phương thức là "Hello World".
-Console là một lớp của thư viện .Net Class
Framework. Lớp này cung cấp phương thức
WriteLine dùng để in 1 chuỗi ra 1 cửa sổ lệnh

Không gian tên (namespace)
Mục đích :

- Nhóm lại (grouping) các lớp được tạo ra từ NSD
- Tránh trùng lặp tên
- Phân biệt rõ ràng
- Mô tả vị trí của các lớp trong nhóm
Ví dụ
- Tạo lớp mô tả mèo nhà Cat có phương thức Speak() không gian
tên Animal.Pet
- Tạo lớp mô tả mèo rừng Cat có phương thức Speak() không gian
tên Animal.Wild
Nếu sử dụng 2 lớp này trong cùng 1 chương trình ????
Animal.Pet.Cat.Speak();
Animal.Wild.Cat.Speak();

Sử dụng chỉ thị using

Với chương trình trước, khi sử dụng lớp Console, ta cần
khai báo
vùng không gian tên của Console- trong trường hợp này là
System
Nếu chương trình nhỏ : không đáng quan tâm
Nếu chương trình lớn : rất nhiều từ System xuất hiện !!!!
Giải quyết
Sử dụng chỉ thị using <vùng không gian tên> ;
Ý nghĩa : Các lớp được sử dụng trong chương trình mà
thuộc vùng không gian tên đã nêu thì không cần phải mô tả
tên vùng không gian đi trước nó nữa

Viết lại ví dụ HelloWorld
using System;
class HelloWorld
{
public static void Main()
{
Console.WriteLine("Hello World");
}
}

Hướng dẫn sử dụng phần mềm C#
1) Khởi động phần mềm Visual Studio.NET. Chọn New Project

2) Chọn "Visual C# Projects".

3) Chọn “Console Application” : Chương trình cho phép nhập dữ
liệu và in kết quả ra 1 cửa sổ lệnh (tương tự cửa sổ DOS
trong Windows), dạng Console App không có phần giao tiếp

đồ họa với NSD

4) Trong hộp Name, nhập vào HelloWorld. Trong ví dụ sau,
hãy nhập Lesson2 vào hộp Solution Name. Bấm OK

Kết quả : Một giải pháp (solution) được tạo ra với tên là
Lesson2. Lesson2 sẽ quản lý các vùng không gian tên và
các lớp được tạo ra Trong ví dụ đang xet, ta chỉ tạo ra 1
không gian tên và 1 lớp Cần lưu ý là 1 không gian tên
(namespace) sẽ ứng với 1 folder thuộc hệ thống file trên
máy tính. Như trong ví dụ này không gian tên HelloWorld
sẽ ứng với folder HelloWorld

5) Visual Studio tự động tạo 1 chương trình nguồn với tên tập
tin lớp là Class1. Lưu ý là chỉ thị "using System" được
động đưa vào chương trình. (Đây là chỉ thị thường sử
dụng , nó cho phép ta dùngkhá nhiều thư viện lớp của môi
trường .NET mà không cần phải mô tả rõ System

6) Lưu ý quan trọng : Visual Studio đặt sẵn 1 tên mặc định
Class1. Trong ví dụ, ta cần đổi tên lại là "Hello". Bấm
chuột chọn Class1 trong cửa sổ Solution Explorer. Trong
cửa sổ Properties bấm vào vùng file name và đổi tên lại
là Hello.cs. Bấm nút Enter sau khi nhập vào "Hello.cs".
Qui ước : phần mở rộng là ".cs"


7) Mở tập tin nguồn Hello.cs , đổi tên lớp thành "Hello".
8) Xóa bỏ dòng [STAThread]. (Sẽ bàn đến trong các bài sau).
9) Lưu ý rằng Visual Studio đã tạo sẵn 1 phương thức Main rỗng

(chưa có dòng lệnh nào). Nhập chương trình HelloWorld vào vị
trí dòng ghi chú "TODO" comment.
10) Khi nhập vào "Console.". (từ Console sau đó là 1 dấu chấm), 1
cửa sổ popup xuất hiện với các gợi ý cho lớp Console (phương
thức, thuộc tính,…gọi là Intellisense). Gõ w, sau đó chọn
WriteLine. Ấn Enter.

11) Gõ vào ký tự "(". Phương thức WriteLine có nhiều dạng (gọi
là overload : cùng tên nhưng khác tham số). Ta có thể dùng các
phím mũi tên để chọn lựa các dạng sử dụng của phương thức này

12) Trong ví dụ này, ta sử dụng dạng phưong thức WriteLine với 1
tham số là 1 chuỗi. Nhập "Hello World", sau đó là ký tự ")", kết
thúc câu lệnh bằng ";". (Tất cả các biểu thức của C# đều kết thúc
bằng ký tự “;”

13) Biên dịch chương trình : bấm chọn Build/ Build Solution. Nếu
không có trục trặc gì về cú pháp, một thông báo cho biết quá
trình biên dịch thành công sẽ xuất hiện ở cửa sổ Output Screen

×