50
TỔNG QUAN .NET NGÔN NGỮ c#

TỔNG QUAN .NET NGÔN NGỮ c#dulieu.tailieuhoctap.vn/books/cong-nghe-thong-tin/.../p1_tong_quan... · VB.NET code J* code NFT Rpnework ... # Đảm bảo sự tương thích giữa

  • Upload
    vonga

  • View
    224

  • Download
    0

Embed Size (px)

Citation preview

Page 1: TỔNG QUAN .NET NGÔN NGỮ c#dulieu.tailieuhoctap.vn/books/cong-nghe-thong-tin/.../p1_tong_quan... · VB.NET code J* code NFT Rpnework ... # Đảm bảo sự tương thích giữa

TỔNG QUAN .NET NGÔN NGỮ c#

Page 2: TỔNG QUAN .NET NGÔN NGỮ c#dulieu.tailieuhoctap.vn/books/cong-nghe-thong-tin/.../p1_tong_quan... · VB.NET code J* code NFT Rpnework ... # Đảm bảo sự tương thích giữa

Nội dung1. G iới th iệ u ĨNET Fram ew ork

1. CLR, CTS, CLS, MSIL...2. Garbage collection3. Namespace

2. T ổng quan ngôn n g ữ C#1. Đặc điểm ngôn ngữ2. Quá trình biên dịch CT C#3. Các loại CT c #

4. Cấu trúc chương trình C#5. Chương trình C# đơn giản

Nguyễn Văn Phong - 2010 2

Page 3: TỔNG QUAN .NET NGÔN NGỮ c#dulieu.tailieuhoctap.vn/books/cong-nghe-thong-tin/.../p1_tong_quan... · VB.NET code J* code NFT Rpnework ... # Đảm bảo sự tương thích giữa

.NET FrameworkChương trình nền tảng cho cho công nghệ .NETCung cấp tập hỢp class library ^ thường dùng “Quản lý sự thực thi của các chương trình .NET C rJC 'f.om C T g g j f ig

*KéữmmdĩặẫàtttỊưãfỊ&

Nguyễn Văn Phong - 2010 3

Page 4: TỔNG QUAN .NET NGÔN NGỮ c#dulieu.tailieuhoctap.vn/books/cong-nghe-thong-tin/.../p1_tong_quan... · VB.NET code J* code NFT Rpnework ... # Đảm bảo sự tương thích giữa

c#code

VB.NETcode

J*code

NFT Rpnework - ArchitechtureCommon Language Infrastructure (CLI)# provide a language-neutral

platform for application development and execution

i 1 ICompiler Compiler Compiler

Common I • lyua jje I Hr » truct J ' i

wCcNMionL*noaM9*

-NET coorpaUtte ứrflư>3« compte » aw n n i j pwllnrm-^Hiil'Hl m lm )C orw oo Ỷửầor^ứtítíi |CIL>

CommonLanguageRuntime

Tht pUtfwm-ipocnc Common U nguaje M u n irs I C l H t c o rrç tm C n to m octinf- fWdabto COS» Hint can I » M C U M on »VU currenl pattorn

0100110010101111010101100110

Nguyễn Văn Phong - 2010 4

Page 5: TỔNG QUAN .NET NGÔN NGỮ c#dulieu.tailieuhoctap.vn/books/cong-nghe-thong-tin/.../p1_tong_quan... · VB.NET code J* code NFT Rpnework ... # Đảm bảo sự tương thích giữa

NET Framework

•NET 2.0 (Nov-2005) VS.NET 2005 oo

.NET 1.1 (Apr-2003) VS .NET 2003

o Default: Server 2003

.NET 1.0(Feb-2002)

Nguyễn Văn Phong - 2010

.NET 3.5 (Nov-2007) VS.NET 2008 Default: Windows 7

.NET 3.0 (Nov-2006) Default: Windows Vista, Server 2008

Page 6: TỔNG QUAN .NET NGÔN NGỮ c#dulieu.tailieuhoctap.vn/books/cong-nghe-thong-tin/.../p1_tong_quan... · VB.NET code J* code NFT Rpnework ... # Đảm bảo sự tương thích giữa

Đặc điểm của ứng dụng .NE1Chạy trên nền (.NET framework)Mã nguồn được biên dịch qua MSILMSIL được thông dịch qua mã máy lúc thực thi nhờ vào CLRĐộc lập nền tảng• về lý thuyết có thể chạy trên mọi nền!

Install .NET Framework redistribute packadge (dotnetfx.exe) đ ể chạy ứng dụng .NET trên máy client.

Nguyễn Văn Phong - 2010 6

Page 7: TỔNG QUAN .NET NGÔN NGỮ c#dulieu.tailieuhoctap.vn/books/cong-nghe-thong-tin/.../p1_tong_quan... · VB.NET code J* code NFT Rpnework ... # Đảm bảo sự tương thích giữa

Đặc điểm của ứng dụng .NET

Programmer

1 CT c#C#.NET Compiler '

« ■ ■ ■

(51

CTC++.NET

0f0ậ g ậ íằ

CT VB .NETVB.NET Compiler \

CT J# .NET /J#.NET Compiler

MS IL

C++Compiler

Ci

Nguyễn Văn Phong - 2010

Page 8: TỔNG QUAN .NET NGÔN NGỮ c#dulieu.tailieuhoctap.vn/books/cong-nghe-thong-tin/.../p1_tong_quan... · VB.NET code J* code NFT Rpnework ... # Đảm bảo sự tương thích giữa

Theo quan điểm của người lập trình, .NET có th ể hiểu như môi trường thực thi mới và thư v iện lớp cơ sở cải tiến.Môi trường thực thi là: Common Language Runtime - CLRVai trò chính CLR: locate, load, manage .NET typesCLR còn quản lý những phần ở mức thấp như: memory management, security check

.NET Framework - CLR

Nguyễn Văn Phong - 2010 8

Page 9: TỔNG QUAN .NET NGÔN NGỮ c#dulieu.tailieuhoctap.vn/books/cong-nghe-thong-tin/.../p1_tong_quan... · VB.NET code J* code NFT Rpnework ... # Đảm bảo sự tương thích giữa

Common Type System (CTS):•M ụ c đích hỗ trỢ thực thi cháo ngôn ngữ• Định nghĩa kiểu dữ liệu tiền định và có sẵn trong IL:

• Tất cả ngôn ngữ .NET sẽ được sinh ra mã cuối trên cơ sở kiểu dữ liệu này

.NET Framework - CTS

VB.NET IL

Integer -------- * Int32

f? V

C#

int

VNguyễn Văn Phong - 2010 9

Page 10: TỔNG QUAN .NET NGÔN NGỮ c#dulieu.tailieuhoctap.vn/books/cong-nghe-thong-tin/.../p1_tong_quan... · VB.NET code J* code NFT Rpnework ... # Đảm bảo sự tương thích giữa

NET Framework - CLSCommon Language Specification:• Đảm bảo sự thực thi cháo• Tất cả compiler hướng .NET đều phải tuân thủ theo CLS

Có thể viết mã non-CLS nhưng sẽ ko đảm bảo thực thi chéoIL phân biệt loại ký tự, VB.NET ko phân biệt, CLS báo rằng ko cho phép 2 định danh chí khác nhau về kiểu ký tự, do đó VB.NET có thể hoạt động trong CLS

VB.NET

Nguyễn Văn Phong - 2010 10

Page 11: TỔNG QUAN .NET NGÔN NGỮ c#dulieu.tailieuhoctap.vn/books/cong-nghe-thong-tin/.../p1_tong_quan... · VB.NET code J* code NFT Rpnework ... # Đảm bảo sự tương thích giữa

MS intermediate Language• I L

• Abstracted assembly language m Ý tưởng về mã Java byte• Mã cấp thấp cú pháp đơn giản =>quá trình dịch sang mã máy

nhanh hơnCLR chuyển IL thành mã máy lúc runtime• S ự chuyển này gọi là Just - In - Time Compilation hay JIT

compiling

Nguyễn Văn Phong - 2010 11

Page 12: TỔNG QUAN .NET NGÔN NGỮ c#dulieu.tailieuhoctap.vn/books/cong-nghe-thong-tin/.../p1_tong_quan... · VB.NET code J* code NFT Rpnework ... # Đảm bảo sự tương thích giữa

Common Language Runtime compilation

SourceCode

Compilercsc.exe or vbc.exe

C++, c#, VB or any .NET language

Assembly

DLL or EXE

Nguyễn Văn Phong - 2010 12

Page 13: TỔNG QUAN .NET NGÔN NGỮ c#dulieu.tailieuhoctap.vn/books/cong-nghe-thong-tin/.../p1_tong_quan... · VB.NET code J* code NFT Rpnework ... # Đảm bảo sự tương thích giữa

AssemblyManaged Modules• Chứa IL code để thực thi

Chứa resource, metadata.., Portable Executable (PE)m Process assembly (EXE)• Library assembly (DLL)

Nguyễn Văn Phong - 2010 13

Page 14: TỔNG QUAN .NET NGÔN NGỮ c#dulieu.tailieuhoctap.vn/books/cong-nghe-thong-tin/.../p1_tong_quan... · VB.NET code J* code NFT Rpnework ... # Đảm bảo sự tương thích giữa

Managed CodePhần m ềm được v iế t để sử dụng trong .NET FrameworkPM khác thì gọi là Unmanaged code“Managed”: do chạy dưới sự giám sát của cơ chê thực thi (CLR)

Legacy Software (unmanaged code)

Managed Executable

Common Language Runtime

Windows (OS khác)

Nguyễn Văn Phong - 2010

Page 15: TỔNG QUAN .NET NGÔN NGỮ c#dulieu.tailieuhoctap.vn/books/cong-nghe-thong-tin/.../p1_tong_quan... · VB.NET code J* code NFT Rpnework ... # Đảm bảo sự tương thích giữa

Garbage collection

Nguyễn Văn Phong - 2010 15

Page 16: TỔNG QUAN .NET NGÔN NGỮ c#dulieu.tailieuhoctap.vn/books/cong-nghe-thong-tin/.../p1_tong_quan... · VB.NET code J* code NFT Rpnework ... # Đảm bảo sự tương thích giữa

Garbage collectionGC xuất h iện (ko định trước) khi ko đủ bộ nhớ đ ể cung cấp cho ứng dụng.GC thực h iện việc tìm kiếm những đối tượng trong managed heap, xoá nếu ko còn tham chiếu tới.Có thể gọi GC m ột cách tường minh

Nguyễn Văn Phong - 2010 16

Page 17: TỔNG QUAN .NET NGÔN NGỮ c#dulieu.tailieuhoctap.vn/books/cong-nghe-thong-tin/.../p1_tong_quan... · VB.NET code J* code NFT Rpnework ... # Đảm bảo sự tương thích giữa

NamespaceNamespace CS1

Class A

Class B

Class c

CS1. A...

CS2. A...

Nguyễn Văn Phong - 2010

Tránh xung đột tênCho pháp nestTruy cập đắy đủ qua tênTất cả data type có tiếp đẳu ngữ là tên namespace

Namespace CS2

Class A

Class B

Class c

17

Page 18: TỔNG QUAN .NET NGÔN NGỮ c#dulieu.tailieuhoctap.vn/books/cong-nghe-thong-tin/.../p1_tong_quan... · VB.NET code J* code NFT Rpnework ... # Đảm bảo sự tương thích giữa

NamespaceH ầu h ế t các lớp cơ sở chung của .NET đều thuộc namespace System• Lớp cs Array thuộc System -> System.Array

.NET đề nghị tấ t cả kiểu do user định nghĩa phải nằm trong 1 namespace

Nguyễn Văn Phong - 2010

Page 19: TỔNG QUAN .NET NGÔN NGỮ c#dulieu.tailieuhoctap.vn/books/cong-nghe-thong-tin/.../p1_tong_quan... · VB.NET code J* code NFT Rpnework ... # Đảm bảo sự tương thích giữa

NamespaceNên phân thành 2 cấp:• Công nghệ• Gói phần mềm chức năng

Nguyễn Văn Phong - 2010 19

Page 20: TỔNG QUAN .NET NGÔN NGỮ c#dulieu.tailieuhoctap.vn/books/cong-nghe-thong-tin/.../p1_tong_quan... · VB.NET code J* code NFT Rpnework ... # Đảm bảo sự tương thích giữa

Các lớp .NET FrameworkThư viện lớp cơ sở .NET là managed code Khá đa dạng & đầy đủ:• Cho pháp kê thừa để phát triển ƯD

Bao bọc tấ t cả các hàm API■

# Dễ sử dụng (khác với VC++ trước đây)

Nguyễn Văn Phong - 2010 20

Page 21: TỔNG QUAN .NET NGÔN NGỮ c#dulieu.tailieuhoctap.vn/books/cong-nghe-thong-tin/.../p1_tong_quan... · VB.NET code J* code NFT Rpnework ... # Đảm bảo sự tương thích giữa

Các lớp .NET bao gổm các vấn đềm Đặc tính lõi cung cấp IL, kiểu dữ liệu trong CTS• HỖ trỢ Win GUI và control• WebForm (ASP.NET) m Data Access (ADO.NET)• Directory Access• File System, registry access m Networking and web browsing• .NET attributes and reflection• WinOS access• COM interoperability

Nguyễn Văn Phong - 2010

Các lớp .NET Framework

Page 22: TỔNG QUAN .NET NGÔN NGỮ c#dulieu.tailieuhoctap.vn/books/cong-nghe-thong-tin/.../p1_tong_quan... · VB.NET code J* code NFT Rpnework ... # Đảm bảo sự tương thích giữa

Framework (Base) Class Library

Thư viện nền tảng cho .NET Framework

Namespace DescriptionSystem Chứa lớp toán học, chuyển đổi dữ liệu

System.IO Các lớp cho thao tác Input và OutputSystem. Net Các lớp liên quan đến network protocol

System. Collections Chức các lớp liên quan đến xử lý tập hợp

System.Data Các lớp của ADO.NET

System.Drawing Các lớp thực thi chức năng GUI

System.Threading Các lớp lập trình MultiThreadSystem.Web Các lớp liên quan đến HTTP protocol

System.Xml Các lớp liên quan XML

FCLBCL

Nguyễn Văn Phong - 201022

Page 23: TỔNG QUAN .NET NGÔN NGỮ c#dulieu.tailieuhoctap.vn/books/cong-nghe-thong-tin/.../p1_tong_quan... · VB.NET code J* code NFT Rpnework ... # Đảm bảo sự tương thích giữa

Run .NET App from ClientRequired MS .NET Framework compatible m MS .NET Framework 2.0, 3.5

Install .NET 3.5 Full Redistributable package• (dotnetfx35.exe, 197MB)

Windows Vista comes with .NET Framework 3.0

.NET Framework X.Y

Nguyễn Văn Phong - 2010 23

Page 24: TỔNG QUAN .NET NGÔN NGỮ c#dulieu.tailieuhoctap.vn/books/cong-nghe-thong-tin/.../p1_tong_quan... · VB.NET code J* code NFT Rpnework ... # Đảm bảo sự tương thích giữa

Tóm tắt.NET Framework: nền tảng cho ứng dụng mới của MST ất cả các chương trình v iết bcing ngôn ngữ khác nhau (trên .NET) sẽ được chuyển v ề ma thống nhất MSILCho pháp thực thi cháo giữa các ngôn ngữKhái niệm Managed CodeCơ chê thu gom vùng nhớ tự độngCác lớp thư v iện .NET phong phú & m ạnh mẽ.Namespace giúp tổ chức tố t mã nguồn

Nguyễn Văn Phong - 2010 24

Page 25: TỔNG QUAN .NET NGÔN NGỮ c#dulieu.tailieuhoctap.vn/books/cong-nghe-thong-tin/.../p1_tong_quan... · VB.NET code J* code NFT Rpnework ... # Đảm bảo sự tương thích giữa

c# Language

Nguyễn Văn Phong - 2010

Page 26: TỔNG QUAN .NET NGÔN NGỮ c#dulieu.tailieuhoctap.vn/books/cong-nghe-thong-tin/.../p1_tong_quan... · VB.NET code J* code NFT Rpnework ... # Đảm bảo sự tương thích giữa

Ngôn ngữ C#Ngôn ngữ ra đời cùng với .NET• Kết hỢp C++ và Java• Hướng đối tượng m Hướng thành phần• Mạnh mẽ (robust) và bền vững (durable)• Anders Hejlsberg và MS team xây dựng c#

Nguyễn Văn Phong - 201026

Page 27: TỔNG QUAN .NET NGÔN NGỮ c#dulieu.tailieuhoctap.vn/books/cong-nghe-thong-tin/.../p1_tong_quan... · VB.NET code J* code NFT Rpnework ... # Đảm bảo sự tương thích giữa

Ngôn ngữ C#Mọi thứ trong C# đều Object oriented• Kể cả kiểu dữ liệu cơ bản

Chỉ cho phép đơn kê thừam Dùng interface để khắc phục

Lớp Object là cha của tấ t cả các lớp# Mọi lớp đều dẫn xuất từ Object

Nguyễn Văn Phong - 201027

Page 28: TỔNG QUAN .NET NGÔN NGỮ c#dulieu.tailieuhoctap.vn/books/cong-nghe-thong-tin/.../p1_tong_quan... · VB.NET code J* code NFT Rpnework ... # Đảm bảo sự tương thích giữa

Ngôn ngữ C#Cho pháp chia chương trĩnh thành các thành phần nhỏ độc lập nhauMỗi lớp gói gọn trong một file, không cắn file header như C/C++Bổ sung khái niệm namespace đ ể gom nhóm các lớp BỔ sung khái niệm Mproperty" cho các lớp Khái niệm delegate & event

Nguyễn Văn Phong - 2010 28

Page 29: TỔNG QUAN .NET NGÔN NGỮ c#dulieu.tailieuhoctap.vn/books/cong-nghe-thong-tin/.../p1_tong_quan... · VB.NET code J* code NFT Rpnework ... # Đảm bảo sự tương thích giữa

c# - mạnh mẽ & bền vữngGarbage Collector# Tự động thu hồi vùng nhớ không dùng

Kiểm soát và x ử lý ngoại lệ exceptionm Đoạn mã bị lỗi sẽ không được thực thi

Type - safe# Không cho gán các kiểu dữ liệu khác nhau

Versioning# Đảm bảo sự tương thích giữa lớp con và lớp cha

Nguyễn Văn Phong - 2010 29

Page 30: TỔNG QUAN .NET NGÔN NGỮ c#dulieu.tailieuhoctap.vn/books/cong-nghe-thong-tin/.../p1_tong_quan... · VB.NET code J* code NFT Rpnework ... # Đảm bảo sự tương thích giữa

Vai trò C# trong .NET Framework.NET runtim e s ẽ p h ổ b iế n và được cài trong m áy client• Việc cài đặt App C# như là tái phân phối các thành phần

.NET• Nhiều App thương mại sẽ được cài đặt bằng C#

C# tạ o cơ h ộ i cho tổ chức xây dựng các App ClienƯServer n-tier.

K ế t n ố i A D O .N ET cho pháp truy c ậ p nhanh chóng & d ễ dàng v ớ i SQL Server, O racle ...

Nguyễn Văn Phong - 201030

Page 31: TỔNG QUAN .NET NGÔN NGỮ c#dulieu.tailieuhoctap.vn/books/cong-nghe-thong-tin/.../p1_tong_quan... · VB.NET code J* code NFT Rpnework ... # Đảm bảo sự tương thích giữa

Vai trò C# trong .NET FrameworkCách tổ chức .NET cho pháp hạn chê những vấn đề phiên bản•L o ạ i bỏ “DLL Hell”...

•A SP.N ET v iết bằng C#• GUI thông minh• Chạy nhanh hơn (đặc tính của .NET)• Mã ASP.NET ko còn là mới hỗn độn• Khả năng bẫy lỗi tốt, hỗ trỢ mạnh trong quá trình xây dựng

App Web.

Nguyễn Văn Phong - 2010 31

Page 32: TỔNG QUAN .NET NGÔN NGỮ c#dulieu.tailieuhoctap.vn/books/cong-nghe-thong-tin/.../p1_tong_quan... · VB.NET code J* code NFT Rpnework ... # Đảm bảo sự tương thích giữa

Quá trình dịch CT C#Mã nguồn C# (tập tin *.cs) được biên dịch qua MSIL• MSIL: tập tin .exe hoặc .dll

MSIL được CLR thông dịch qua mã máy• Dùng kỹ thuật JIT (just-in-time) để tăng tốc độ

Nguyễn Văn Phong - 201032

Page 33: TỔNG QUAN .NET NGÔN NGỮ c#dulieu.tailieuhoctap.vn/books/cong-nghe-thong-tin/.../p1_tong_quan... · VB.NET code J* code NFT Rpnework ... # Đảm bảo sự tương thích giữa

Quá trình dịch CT C#

Nguyễn Văn Phong - 201033

Page 34: TỔNG QUAN .NET NGÔN NGỮ c#dulieu.tailieuhoctap.vn/books/cong-nghe-thong-tin/.../p1_tong_quan... · VB.NET code J* code NFT Rpnework ... # Đảm bảo sự tương thích giữa

Các loại ứng dụng C#C hư ơ ng trình Console (TUI)

Giao tiếp với người dùng bằng bàn phím Không có giao diện đồ họa (GUI)

C hư ơ ng trình W indows FormGiao tiếp với người dùng bằng bàn phím và mouse Có giao diện đồ họa và xử lý sự kiện

C hư ơ ng trình Web FormKết hỢp với ASP .NET, C# đóng vài trò xử lý bên dưới (underlying code)Có giao diện đồ họa và xử lý sự kiện

Nguyễn Văn Phong - 2010 34

Page 35: TỔNG QUAN .NET NGÔN NGỮ c#dulieu.tailieuhoctap.vn/books/cong-nghe-thong-tin/.../p1_tong_quan... · VB.NET code J* code NFT Rpnework ... # Đảm bảo sự tương thích giữa

c \ file:///C:/Documents and Settĩngs/Nguyen Van Phong/My Documents/Visual studio 2008/Projects/ jnjxj

Nguyễn Văn Phong - 201035

Page 36: TỔNG QUAN .NET NGÔN NGỮ c#dulieu.tailieuhoctap.vn/books/cong-nghe-thong-tin/.../p1_tong_quan... · VB.NET code J* code NFT Rpnework ... # Đảm bảo sự tương thích giữa

UD WinForm và Web Form

HelloWorld WindowsForm mHello World!

1_«..J

& Untitled Page - Mozilla FirefoxFile Edit View History Bookmarks Tools Help

http : //localhost : 3388/HelloWorld/Def ault. aspx

H ello W orld!

Nguyên Vân Phong - 2010

Page 37: TỔNG QUAN .NET NGÔN NGỮ c#dulieu.tailieuhoctap.vn/books/cong-nghe-thong-tin/.../p1_tong_quan... · VB.NET code J* code NFT Rpnework ... # Đảm bảo sự tương thích giữa

Tạo UD Console ■

Test02 - I N e w p r o j e HelloWorld - Microsoft visual studioFile Edit Vii

J p New Projei

4 New Web

J Mew File..

a Open Pro;«

Ö Open Web

LÜ Open File

Add

Close

d | Close Pro;i

Save Sele<

Project types File Edit View Refactor Project Build Debug

i « - - JS & I * ^ -

Data Tools

m-rTest

50 file:/,JỂJẾL

Program.cs

ị HelloWorld. Program

□ using System;using System.Collections.Generic; using System.Text;

S namespace HelloUorld

iẸ10|

11 12131 L } 141

class Program <

static void Hain(string[] args) {}

Cancel

Nguyễn Văn Phong - 201037

Page 38: TỔNG QUAN .NET NGÔN NGỮ c#dulieu.tailieuhoctap.vn/books/cong-nghe-thong-tin/.../p1_tong_quan... · VB.NET code J* code NFT Rpnework ... # Đảm bảo sự tương thích giữa

// Chương trình c# đầu tiên

System;System.Collections.Generic; System.Text;

Program

Main( [] args)

Console.Write(sole.ReadLine0;

OQ

Page 39: TỔNG QUAN .NET NGÔN NGỮ c#dulieu.tailieuhoctap.vn/books/cong-nghe-thong-tin/.../p1_tong_quan... · VB.NET code J* code NFT Rpnework ... # Đảm bảo sự tương thích giữa

cấụ trục chương trình C#Phan chú thích (option)// chương trinh C# đầu tiên

Phần khai báo dùng namespace (option)

System;System.Collections.Generic System.Text;

Phần định nghĩa namespace và lớp

Program {Main(

Console.Write(isole.ReadLine();

[] args){

Nguyên Văn Phong - 2010 39

Page 40: TỔNG QUAN .NET NGÔN NGỮ c#dulieu.tailieuhoctap.vn/books/cong-nghe-thong-tin/.../p1_tong_quan... · VB.NET code J* code NFT Rpnework ... # Đảm bảo sự tương thích giữa

Câu lệnh■

Các câu lệnh được viết trong thân của phương thức (ở đây là phương thức Main)Thực h iện m ột công việc nào đó

K ết thúc bởi dấu chấm phẩy ( ; )

Phương thức Main —ị

Các câu —ị lệnh

{Program

{{

Main( [] args)

Le.Write( ); Console.ReadLine();

}}

Nguyễn Văn Phong - 201040

Page 41: TỔNG QUAN .NET NGÔN NGỮ c#dulieu.tailieuhoctap.vn/books/cong-nghe-thong-tin/.../p1_tong_quan... · VB.NET code J* code NFT Rpnework ... # Đảm bảo sự tương thích giữa

Khoảng trắngBao gồmm Ký tự trắng, ký tự xuống dòng, ký tự tab• Dòng trốngsử dụng hỢp lý ■=> chương trình dễ đọc

Nguyễn Văn Phong - 2010 41

Page 42: TỔNG QUAN .NET NGÔN NGỮ c#dulieu.tailieuhoctap.vn/books/cong-nghe-thong-tin/.../p1_tong_quan... · VB.NET code J* code NFT Rpnework ... # Đảm bảo sự tương thích giữa

Chú thíchChú thích (comment) được dùng đ ể giải thích v ề chương trình và các câu lệnh

Giúp cho chương trình dễ h iểu hơn ĐƯỢc bỏ qua khi biên dịchKhông ảnh hưởng tới kết quả thực thi của chương trìnhCó thể phát sinh ra documentation của chương trình qua chú thích XML

Nguyễn Văn Phong - 201042

Page 43: TỔNG QUAN .NET NGÔN NGỮ c#dulieu.tailieuhoctap.vn/books/cong-nghe-thong-tin/.../p1_tong_quan... · VB.NET code J* code NFT Rpnework ... # Đảm bảo sự tương thích giữa

Hai cách tạo chú thích cơ■

bảnGõ phần chú thích sau cặp ký tự / /Gõ phắn chú thích giữa cặp ký tự / * và * /

/* Chương trình C# đâu tiênIn ra câu chào "Hello World" */

using System;

namespace HelloWorld {

class Program {

static void Main(string[] args){

Console.Write("Hello World!"); // Xuất ra câu chào Console.ReadLine(); // chờ nhấn Enter

}}

Nguyễn Văn Phong - 201043

Page 44: TỔNG QUAN .NET NGÔN NGỮ c#dulieu.tailieuhoctap.vn/books/cong-nghe-thong-tin/.../p1_tong_quan... · VB.NET code J* code NFT Rpnework ... # Đảm bảo sự tương thích giữa

XML CommentCho phép phát sinh ra sưu liệu dạng XMLThích hỢp cho việc v iết sưu liệu của dự án lớnChú thích XML b ắ t đầu với triple slash (“///”) và các tag của XMLChú thích XML dùng cho• User defined types• Class, delegate, enum and struct• Member of user defined types

Nguyễn Văn Phong - 201044

Page 45: TỔNG QUAN .NET NGÔN NGỮ c#dulieu.tailieuhoctap.vn/books/cong-nghe-thong-tin/.../p1_tong_quan... · VB.NET code J* code NFT Rpnework ... # Đảm bảo sự tương thích giữa

XML Commentusing System; namespace XMLCommentDemo {

public class Temperature {

public static int CelsiusToFahrenheit(int degreesCelsius){

return ((int)((9/5)*degreesCelsius) + 32);}public static int FahrenheitToCelsius(int degressFahrenheit) {

return ((int)((5/9)*(degressFahrenheit - 32)));}

}}

NguySn v&n Phong - 2010 45

Page 46: TỔNG QUAN .NET NGÔN NGỮ c#dulieu.tailieuhoctap.vn/books/cong-nghe-thong-tin/.../p1_tong_quan... · VB.NET code J* code NFT Rpnework ... # Đảm bảo sự tương thích giữa

XML CommentComment for class

/// <summary>/// Class temperature provides functions which convert /// among various temperature scales./// </summary>public class Temperature

Comment for method

/// <summary>/// Converts degrees Celsius to degrees Fahrenheit/// </summary>/// <param name="degreesCelsius">Degrees Celsius</param> /// <returns>Returns degrees Fahrenheit</returns> public static int CelsiusToFahrenheit(int degreesCelsius)

Nguyễn Văn Phong - 2010 46

Page 47: TỔNG QUAN .NET NGÔN NGỮ c#dulieu.tailieuhoctap.vn/books/cong-nghe-thong-tin/.../p1_tong_quan... · VB.NET code J* code NFT Rpnework ... # Đảm bảo sự tương thích giữa

XML Commentusing System; namespace XMLCommentDemo{

/// <summary>/// Class temperature provides functions which convert among various /// temperature scales./// </summary>public class Temperature {

/// <summary>/// Converts degrees Celsius to degrees Fahrenheit/// </summary>/// <param name="degreesCelsius">Degrees Celsius</param>/// <returns>Returns degrees Fahrenheit</returns> public static int CelsiusToFahrenheit(int degreesCelsius) {

return ((int)((9/5)*degreesCelsius) + 32);}/// <summary>/// Converts degrees Fahrenheit to degrees Celsius/// </summary>/// <param name="degressFahrenheit">Degrees Fahrenheit</param>/// <returns>Returns degrees Celsius</returns> public static int FahrenheitToCelsius(int degressFahrenheit) {

return ((int)((5/9)‘(degressFahrenheit - 32)));}

}}Nguyễn Văn Phong - 2010 47

Page 48: TỔNG QUAN .NET NGÔN NGỮ c#dulieu.tailieuhoctap.vn/books/cong-nghe-thong-tin/.../p1_tong_quan... · VB.NET code J* code NFT Rpnework ... # Đảm bảo sự tương thích giữa

Tóm tătC# là một ngôn ngữ lập trình của .NET• Là ngôn ngữ hiện đại• Hướng đối tượng, hướng thành phần m An toàn kiểu, mạnh mẽ, bền bỉCó ba loại chương trình C#• Console, Windows Form, Web FormTạo ra một chương trình C# đơn giản• Tạo một ứng dụng Console• Viết các câu lệnh trong thân của phương thức Main

Nguyễn Văn Phong - 2010 48

Page 49: TỔNG QUAN .NET NGÔN NGỮ c#dulieu.tailieuhoctap.vn/books/cong-nghe-thong-tin/.../p1_tong_quan... · VB.NET code J* code NFT Rpnework ... # Đảm bảo sự tương thích giữa

Tài liệu tham khảo■

Professional c#, 2nd Edition, Wrox Press Ltd.2. A programmer’s Introduction to c#, Eric Gunnerson, Apress,

2000Programming c#, Jesse Liberty, O’Reilly, First Edition, 2001

4. c# bible, Jeff Ferguson et al, Wiley Publishing, 20025. Thinking in c#, Larry O’Brien, Bmce Eckel, Prentice Hall.6. Presenting c#, Sams Publishing, 20027. c# Language Reference, Anders Hejlsberg and Scott

Wiltamuth, Microsoft Corp.

Nguyễn Văn Phong - 2010 49

Page 50: TỔNG QUAN .NET NGÔN NGỮ c#dulieu.tailieuhoctap.vn/books/cong-nghe-thong-tin/.../p1_tong_quan... · VB.NET code J* code NFT Rpnework ... # Đảm bảo sự tương thích giữa

Demo

Nguyễn Văn Phong - 201050