1. Trang chủ
  2. » Công Nghệ Thông Tin

Ngôn ngữ c

23 181 0

Đ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 23
Dung lượng 486,93 KB

Nội dung

Ngôn ngữ C# Ngôn ngữ C# Bởi: Khuyet Danh Tại phải sử dụng ngôn ngữ C# Nhiều người tin không cần thiết có ngôn ngữ lập trình Java, C++, Perl, Microsoft Visual Basic, ngôn ngữ khác nghĩ cung cấp tất chức cần thiết Ngôn ngữ C# ngôn ngữ dẫn xuất từ C C++, tạo từ tảng phát triển Microsoft bắt đầu với công việc C C++ thêm vào đặc tính để làm cho ngôn ngữ dễ sử dụng Nhiều số đặc tính giống với đặc tính có ngôn ngữ Java Không dừng lại đó, Microsoft đưa số mục đích xây dựng ngôn ngữ Những mục đích được tóm tắt sau: • • • • • • • C# ngôn ngữ đơn giản C# ngôn ngữ đại C# ngôn ngữ hướng đối tượng C# ngôn ngữ mạnh mẽ mềm dẻo C# ngôn ngữ có từ khóa C# ngôn ngữ hướng module C# trở nên phổ biến C# ngôn ngữ đơn giản C# loại bỏ vài phức tạp rối rắm ngôn ngữ Java c++, bao gồm việc loại bỏ macro, template, đa kế thừa, lớp sở ảo (virtual base class) Chúng nguyên nhân gây nhầm lẫn hay dẫn đến vấn đề cho người phát triển C++ Nếu người học ngôn ngữ chắn ta không trải qua thời gian để học nó! Nhưng ta hiệu ngôn ngữ C# loại bỏ vấn đề Ngôn ngữ C# đơn giản dựa tảng C C++ Nếu thân thiện với C C++ hoậc chí Java, thấy C# giống diện mạo, cú pháp, biểu thức, toán tử chức khác lấy trực tiếp từ ngôn ngữ C C++, cải tiến để làm cho ngôn ngữ đơn giản Một vài cải tiến 1/23 Ngôn ngữ C# loại bỏ dư thừa, thêm vào cú pháp thay đổi Ví dụ như, C++ có ba toán tử làm việc với thành viên ::, , -> Để biết dùng ba toán tử phức tạp dễ nhầm lẫn Trong C#, chúng thay với toán tử gọi (dot) Đối với người học điều việc cải tiến khác làm bớt nhầm lẫn đơn giản Nếu sử dụng Java tin đơn giản, tìm thấy C# đơn giản Hầu hết người không tin Java ngôn ngữ đơn giản Tuy nhiên, C# dễ Java C++ C# ngôn ngữ đại Điều làm cho ngôn ngữ đại? Những đặc tính xử lý ngoại lệ, thu gom nhớ tự động, kiểu liệu mở rộng, bảo mật mã nguồn đặc tính mong đợi ngôn ngữ đại C# chứa tất đặc tính Nếu người học lập trình cảm thấy đặc tính phức tạp khó hiểu Tuy nhiên, đừng lo lắng tìm hiểu đặc tính qua chương sách Con trỏ tích hợp vào ngôn ngữ C++ Chúng nguyên nhân gây rắc rối ngôn ngữ C# loại bỏ phức tạp rắc rối phát sinh trỏ Trong C#, thu gom nhớ tự động kiểu liệu an toàn tích hợp vào ngôn ngữ,sẽ loại bỏ vấn đề rắc rối C++ C# ngôn ngữ hướng đối tượng Những đặc điểm ngôn ngữ hướng đối tượng (Object-oriented language) đóng gói (encapsulation), kế thừa (inheritance), đa hình (polymorphism) C# hỗ trợ tất đặc tính Phần hướng đối tượng C# trình bày chi tiết chương riêng phần sau C# ngôn ngữ mạnh mẽ mềm dẻo Như đề cập trước, với ngôn ngữ C# bị giới hạn thân trí tưởng tượng Ngôn ngữ không đặt ràng buộc lên việc làm C# sử dụng cho nhiều dự án khác tạo ứng dụng xử lý văn bản, ứng dụng đồ họa, tính, hay chí trình biên dịch cho ngôn ngữ khác C# ngôn ngữ từ khóa C# ngôn ngữ sử dụng giới hạn từ khóa Phần lớn từ khóa sử dụng để mô tả thông tin Chúng ta nghĩ ngôn ngữ có nhiều từ khóa mạnh 2/23 Ngôn ngữ C# Điều thật, trường hợp ngôn ngữ C#, tìm thấy ngôn ngữ sử dụng để làm nhiệm vụ Bảng sau liệt kê từ khóa ngôn ngữ C# Từ khóa ngôn ngữ C# abstract default foreach object sizeof unsafe as delegate goto operator stackalloc ushort base if out static using bool double implicit override string virtual break else in params struct volatile byte enum int private switch void case event interface protected this catch explicit internal public char extern is readonly true checked false lock ref try class finally long return typeof const fixed namespace sbyte uint continue float new sealed ulong decimal for null short unchecked while throw C# ngôn ngữ hướng module Mã nguồn C# viết phần gọi lớp, lớp chứa phương thức thành viên Những lớp phương thức sử dụng lại ứng dụng hay chương trình khác Bằng cách truyền mẫu thông tin đến lớp hay phương thức tạo mã nguồn dùng lại có hiệu C# ngôn ngữ phổ biến C# ngôn ngữ lập trình Vào thời điểm sách viết, ngôn ngữ phổ biến Nhưng ngôn ngữ có số lý để trở thành ngôn ngữ phổ biến Một lý Microsoft cam kết NET 3/23 Ngôn ngữ C# Microsoft muốn ngôn ngữ C# trở nên phổ biến Mặc dù công ty làm sản phẩm trở nên phổ biến, hỗ trợ Cách không lâu, Microsoft gặp thất bại hệ điều hành Microsoft Bob Mặc dù Microsoft muốn Bob trở nên phổ biến thất bại C# thay tốt để đem đến thành công sơ với Bob Thật người công ty Microsoft sử dụng Bob công việc ngày họ Tuy nhên,với C# khác, sử dụng Microsoft Nhiều sản phẩm công ty chuyển đổi viết lại C# Bằng cách sử dụng ngôn ngữ Microsoft xác nhận khả C# cần thiết cho người lập trình Micorosoft NET lý khác để đem đến thành công C# .NET thay đổi cách tạo thực thi ứng dụng Ngoài hai lý ngôn ngữ C# trở nên phổ biến đặc tính ngôn ngữ đề cập mục trước như: đơn giản, hướng đối tượng, mạnh mẽ Ngôn ngữ C# ngôn ngữ khác Chúng ta nghe đến ngôn ngữ khác Visual Basic, C++ Java Có lẽ tự hỏi khác ngôn ngữ C# ngôn ngữ Và tự hỏi lại chọn ngôn ngữ để học mà không chọn ngôn ngữ Có nhiều lý xem số so sánh ngôn ngữ C# với ngôn ngữ khác giúp phần trả lời thắc mắc Microsoft nói C# mang đến sức mạnh ngôn ngữ C++ với dễ dàng ngôn ngữ Visual Basic Có thể không dễ Visual Basic, với phiên Visual Basic.NET (Version 7) ngang Bởi chúng viết lại từ tảng Chúng ta viết nhiều chương trình với mã nguồn dùng C# Mặc dù C# loại bỏ vài đặc tính C++, bù lại tránh lỗi mà thường gặp ngôn ngữ C++ Điều tiết kiệm hàng hay chí hàng ngày việc hoàn tất chương trình Chúng ta hiểu nhiều điều chương giáo trình Một điều quan trọng khác với C++ mã nguồn C# không đòi hỏi phải có tập tin header Tất mã nguồn viết khai báo lớp Như nói bên .NET runtime C# thực việc thu gom nhớ tự động Do điều nên việc sử dụng trỏ C# quan trọng C++ Những trỏ sử dụng C#, đoạn mã nguồn đánh dấu không an toàn (unsafe code) C# từ bỏ ý tưởng đa kế thừa C++ Và khác khác C# đưa thêm thuộc tính vào lớp giống Visual Basic Và thành viên 4/23 Ngôn ngữ C# lớp gọi toán tử “.” khác với C++ có nhiều cách gọi tình khác Một ngôn ngữ khác mạnh phổ biến Java, giống C++ C# phát triển dựa C Nếu định học Java sau này, tìm nhiều mà học từ C# áp dụng Điểm giống C# Java hai biên dịch mã trung gian: C# biên dịch MSIL Java biên dịch bytecode Sau chúng thực cách thông dịch biên dịch just-in-time máy ảo tương ứng Tuy nhiên, ngôn ngữ C# nhiều hỗ trợ đưa để biên dịch mã ngôn ngữ trung gian sang mã máy C# chứa nhiều kiểu liệu Java cho phép nhiều mở rộng với kiểu liệu giá trị Ngôn ngữ C# hỗ trợ kiểu liệt kệ (enumerator), kiểu giới hạn đến tập định nghĩa trước, kiểu liệu cấu trúc kiểu liệu giá trị người dùng định nghĩa Chúng ta tìm hiểu kỹ kiểu liệu tham chiếu kiểu liệu giá trị trình bày phần sau Tương tự Java, C# từ bỏ tính đa kế thừa lớp, nhiên mô hình kế thừa đơn mở rộng tính đa kế thừa nhiều giao diện Các bước chuẩn bị cho chương trình Thông thường, việc phát triển phần mềm, người phát triển phải tuân thủ theo quy trình phát triển phần mềm cách nghiêm ngặt quy trình chuẩn hóa Tuy nhiên phạm vi tìm hiểu ngôn ngữ viết chương trình nhỏ không đòi hỏi khắt khe việc thực theo quy trình Nhưng để giải vấn đề cần phải thực theo bước sau Đầu tiên phải xác định vấn đề cần giải Nếu rõ vấn đề ta tìm phương pháp giải Sau xác định vấn đề, nghĩ kế hoạch để thực Sau có kế hoạch, thực thi kế hoạch Sau kế hoạch thực thi, phải kiểm tra lại kết để xem vấn đề giải xong chưa Logic thường áp dụng nhiều lĩnh vực khác nhau, có lập trình Khi tạo chương trình C# hay ngôn ngữ nào, nên theo bước sau: • • • • Xác định mục tiêu chương trình Xác định phương pháp giải vấn đề Tạo chương trình để giải vấn đề Thực thi chương trình để xem kết 5/23 Ngôn ngữ C# Ví dụ mục tiêu để viết chương trình xử lý văn đơn giản, mục tiêu xây dựng chương trình cho phép soạn thảo lưu trữ chuỗi ký tự hay văn Nếu mục tiêu viết chương trình hiệu Bước thứ hai định đến phương pháp để viết chương trình Bước xác định thông tin cần thiết sử dụng chương trình, hình thức sử dụng Từ thông tin rút phương pháp để giải vấn đề Bước thứ ba bước cài đặt, bước dùng ngôn ngữ khác để cài đặt,tuy nhiên, ngôn ngữ phù hợp để giải vấn đề cách tốt chọn Trong phạm vi sách mặc định dùng C#, đơn giản tìm hiểu nó! Và bước cuối phần thực thi chương trình để xem kết Chương trình C# đơn giản Để bắt đầu cho việc tìm hiểu ngôn ngữ C# tạo tiền đề cho chương sau, chương trình bày chương trình C# đơn giản Chương trình C# -class ChaoMung { static void Main( ) { // Xuat man hinh System.Console.WriteLine("Chao Mung"); } } 6/23 Ngôn ngữ C# -Kết quả: Chao Mung -Sau viết xong lưu dạng tập tin có phần mở rộng *.cs (C sharp) Sau biên dịch chạy chương trình Kết chuỗi “Chao Mung” xuất hình console Các mục sau giới thiệu xoay quanh ví dụ trên, phần chi tiết loại trình bày chương Lớp, đối tượng kiểu liệu (type) Điều cốt lõi lập trình hướng đối tượng tạo kiểu Kiểu thứ xem trừu tượng Nó bảng liệu, tiểu trình, hay nút lệnh cửa sổ Tóm lại kiểu định nghĩa dạng vừa có thuộc tính chung (properties) hành vi ứng xử (behavior) Nếu ứng dụng Windows tạo ba nút lệnh OK, Cancel, Help, thực chất dùng ba thể kiểu nút lệnh Windows nút chia xẻ thuộc tính hành vi chung với Ví dụ, nút có thuộc tính kích thước, vị trí, nhãn tên (label), nhiên thuộc tính thể không thiết phải giống nhau, thường chúng khác nhau, nút OK có nhãn “OK”, Cancel có nhãn “Cancel” Ngoài nút có hành vi ứng xử chung khả vẽ, kích hoạt, đáp ứng thông điệp nhấn,…Tùy theo chức đặc biệt riêng loại nội dung ứng xử khác nhau, tất chúng xem kiểu Cũng nhiều ngôn ngữ lập trình hướng đối tượng khác, kiểu C# định nghĩa lớp (class), thể riêng lớp gọi đối tượng (object) Trong chương trình bày kiểu khác kiểu lớp kiểu liệt kê, cấu trúc kiểu ủy quyền (delegates) Quay lại chương trình ChaoMung trên, chương trình có kiểu đơn giản lớp ChaoMung Để định nghĩa kiểu lớp C# phải dùng từ khoá class, tiếp sau tên lớp ví dụ tên lớp ChaoMung Sau định nghĩa thuộc tính hành động cho lớp Thuộc tính hành động phải nằm dấu { } 7/23 Ngôn ngữ C# Khai báo lớp C# dấu ; sau ngoặc } cuối lớp Và khác với lớp C/C++ chia thành phần header phần định nghĩa Trong C# , định nghĩa lớp gói gọn dấu { } sau tên lớp tập tin Phương thức Hai thành phần cấu thành lớp thuộc tính hay tính chất phương thức hay gọi hành động ứng xử đối tượng Trong C# hành vi định nghĩa phương thức thành viên lớp Phương thức hàm định nghĩa lớp Do đó, ta gọi phương thức thành viên hàm thành viên lớp Các phương thức hành động mà lớp làm với cách thức làm hành động Thông thường, tên phương thức thường đặt theo tên hành động, ví dụ DrawLine() hay GetString() Tuy nhiên ví dụ vừa trình bày, có hàm thành viên Main() hàm hàm đặc biệt, không mô tả hành động lớp hết, xác định hàm đầu vào lớp (entry point) CRL gọi thực thi Trong C#, hàm Main() viết ký tự hoa đầu, trả giá trị void hay int Khi chương trình thực thi, CLR gọi hàm Main() đầu tiên, hàm Main() đầu vào chương trình, chương trình phải có hàm Main() Đôi chương trình có nhiều hàm Main() lúc ta phải xác định dẫn biên dịch để CLR hàm Main() đầu vào chương trình Việc khai báo phương thức xem giao ước người tạo lớp người sử dụng lớp Người xây dựng lớp người dùng lớp đó, không hoàn toàn Vì lớp xây dựng thành thư viện chuẩn cung cấp cho nhóm phát triển khác…Do việc tuân thủ theo qui tắc cần thiết Để khai báo phương thức, phải xác định kiểu giá trị trả về, tên phương thức, cuối tham số cần thiết cho phương thức thực Chú thích Một chương trình viết tốt cần phải có thích đoạn mã viết Các đoạn thích không biên dịch không tham gia vào chương trình Mục đích làm cho đoạn mã nguồn rõ ràng dễ hiểu Trong ví dụ có dòng thích : 8/23 Ngôn ngữ C# // Xuat man hinh Một chuỗi thích dòng bắt đầu ký tự “//” Khi trình biên dịch gặp hai ký tự bỏ qua dòng Ngoài C# cho phép kiểu thích cho hay nhiều dòng, ta phải khai báo “/*” phần đầu thích kết thúc thích ký tự “*/” Minh họa dùng thích nhiều dòng class ChaoMung { static void Main() { /* Xuat man hinh chuoi ‘chao mung’ Su dung ham WriteLine cua lop System.Console */ System.Console.WriteLine(“Chao Mung”); } } Kết quả: Chao Mung Ngoài hai kiểu thích giống C/C++ C# hỗ trợ thêm kiểu thứ ba kiểu cuối cùng, kiểu chứa định dạng XML nhằm xuất tập tin XML biên dịch để tạo sưu liệu cho mã nguồn Chúng ta bàn kiểu chương trình phần tiếp 9/23 Ngôn ngữ C# Ứng dụng Console Ví dụ đơn giản gọi ứng dụng console, ứng dụng giao tiếp với người dùng thông quan bàn phím giao diện người dùng (UI), giống ứng dụng thường thấy Windows Trong chương xây dựng ứng dụng nâng cao Windows hay Web ta dùng các giao diện đồ họa Còn để tìm hiểu ngôn ngữ C# tuý cách tốt ta viết ứng dụng console Trong hai ứng dụng đơn giản ta dùng phương thức WriteLine() lớp Console Phương thức xuất hình dòng lệnh hay hình DOS chuỗi tham số đưa vào, cụ thể chuỗi “Chao Mung” Namespace Như biết NET cung cấp thư viện lớp đồ sộ thư viện có tên FCL (Framework Class Library) Trong Console lớp nhỏ hàng ngàn lớp thư viện Mỗi lớp có tên riêng, FCL có hàng ngàn tên ArrayList, Dictionary, FileSelector,… Điều làm nảy sinh vấn đề, người lập trình nhớ hết tên lớp NET Framework Tệ sau ta tạo lại lớp trùng với lớp có chẳng hạn Ví dụ trình phát triển ứng dụng ta cần xây dựng lớp từ điển lấy tên Dictionary, điều dẫn đến tranh chấp biên dịch C# cho phép tên Chắc chắn phải đổi tên lớp từ điển mà ta vừa tạo thành tên khác chẳng hạn myDictionary Khi làm cho việc phát triển ứng dụng trở nên phức tạp, cồng kềnh Đến phát triển định ác mộng cho nhà phát triển Giải pháp để giải vấn đề việc tạo namespace, namsespace hạn chế phạm vi tên, làm cho tên có ý nghĩa vùng định nghĩa Giả sử có người nói Tùng kỹ sư, từ kỹ sư phải kèm với lĩnh vực định đó, không là kỹ sư cầu đường, khí hay phần mềm Khi lập trình viên C# bảo Tùng CauDuong.KySu phân biệt với CoKhi.KySu hay PhanMem.KySu Namespace trường hợp CauDuong, CoKhi, PhanMem hạn chế phạm vi từ theo sau Nó tạo vùng không gian để tên sau có nghĩa Tương tự ta tạo namespace để phân thành vùng cho lớp trùng tên không tranh chấp với 10/23 Ngôn ngữ C# Tương tự vậy, NET Framework có xây dựng lớp Dictionary bên namespace System.Collections, tương ứng ta tạo lớp Dictionary khác nằm namespace ProgramCSharp.DataStructures, điều hoàn toàn không dẫn đến tranh chấp với Trong ví dụ minh họa 1.2 đối tượng Console bị hạn chế namespace việc sử dụng mã lệnh: System.Console.WriteLine(); Toán tử ‘.’ Trong vídụ 2.2 dấu ‘.’ sử dụng để truy cập đến phương thức hay liệu lớp (trong trường hợp phương thức WriteLine()), ngăn cách tên lớp đến namespace xác nhận (namspace System lớp Console) Việc thực theo hướng từ xuống, mức namespace System, lớp Console,và cuối truy cập đến phương thức hay thuộc tính lớp Trong nhiều trường hợp namespace chia thành namespace gọi subnamespace Ví dụ namespace System có chứa số subnamesapce Configuration, Collections, Data, nhiều nữa, namespace Collection chia thành nhiều namesapce Namespace giúp tổ chức ngăn cách kiểu Khi viết chương trình C# phức tạp, phải tạo kiến trúc namespace riêng cho mình,và không giới hạn chiều sâu phân cấp namespace Mục đích namespace giúp chia để quản lý kiến trúc đối tượng phức tạp Từ khóa using Để làm cho chương trình gọn hơn, không cần phải viết namespace cho đối tượng, C# cung cấp từ khóa using, sau từ khóa namespace hay subnamespace với mô tả đầy đủ cấu trúc phân cấp Ta dùng dòng lệnh : using System; đầu chương trình chương trình có dùng đối tượng Console không cần phải viết đầy đủ : System.Console mà cần viết Console Dùng khóa using 11/23 Ngôn ngữ C# -using System; class ChaoMung { static void Main() { //Xuat man hinh chuoi thong bao Console.WriteLine("Chao Mung"); } } -Kết quả: Chao Mung -Phải đặt câu using System trước định nghĩa lớp ChaoMung Mặc dù định sử dụng namespace System, không giống ngôn ngữ khác, định sử dụng đối tượng System.Console Không hợp lệ C# -using System.Console; 12/23 Ngôn ngữ C# class ChaoMung { static void Main() { //Xuat man hinh chuoi thong bao WriteLine("Chao Mung"); } } -Đoạn chương trình biên dịch thông báo lỗi sau: error CS0138: A using namespace directive can only be applied to namespace; ‘System.Console’ is a class not a namespace Cách biểu diễn namespace làm giảm nhiều thao tác gõ bàn phím, không đem lại lợi ích làm xáo trộn namespace có tên không khác Giải pháp chung sử dụng từ khóa using với namespace xây dựng sẵn, namespace tạo ra, namespace nắm sưu liệu Còn namespace hãng thứ ba cung cấp không nên dùng từ khóa using Phân biệt chữ thường chữ hoa Cũng giống C/C++, C# ngôn ngữ phân biệt chữ thường với chữ hoa, điều có nghĩa hai câu lệnh writeLine khác với WriteLine khác với WRITELINE Đáng tiếc C# không giống VB, môi trường phát triển C# không tự sửa lỗi này, viết hai chữ với cách khác đưa vào chương trình gỡ rối tìm lỗi Để trách việc lãnh phí thời gian công sức, người ta phát triển số qui ước cho cách 13/23 Ngôn ngữ C# đặt tên biến, hằng, hàm, nhiều định danh khác Qui ước giáo trình dùng cú pháp lạc đà (camel notation) cho tên biến cú pháp Pascal cho hàm, hằng, thuộc tính Biến myDictionary theo cách đặt tên cú pháp lạc đà Hàm DrawLine, thuộc tính ColorBackground theo cách đặt tên cú pháp Pascal Từ khóa static Hàm Main() ví dụ minh họa có nhiều cách thiết kế Trong minh họa hàm Main() khai báo với kiểu trả void, tức hàm không trả giá trị Đôi cần kiểm tra chương trình có thực hay không, người lập trình khai báo hàm Main() trả giá trị để xác định kết thực chương trình Trong khai báo ví dụ có dùng từ khóa static: static void Main() { } Từ khóa hàm Main() gọi mà không cần phải tạo đối tượng ChaoMung Những vấn đề liên quan đến khai báo lớp, phương thức, hay thuộc tính trình bày chi tiết chương Phát triển chương trình minh họa Có tối thiểu hai cách để soạn thảo, biên dịch thực thi chương trình sách này: Sử dụng môi trường phát triển tích hợp (IDE) Visual Studio NET Sử dụng chương trình soạn thảo văn Notepad dùng biên dịch dòng lệnh Mặc dù phát triển phần mềm bên Visual Studio NET, IDE cung cấp nhiều tiện ích hỗ trợ cho người phát triển như: hỗ trợ phần soạn thảo mã nguồn canh lề, màu sắc, tích hợp tập tin trợ giúp, đặc tính intellisense, Nhưng 14/23 Ngôn ngữ C# điều quan trọng IDE phải có công cụ debug mạnh số công cụ trợ giúp phát triển ứng dụng khác Trong sách giả sử người đọc sử dụng Visual Studio NET Phần trình tập trung vào ngôn ngữ platform công cụ phát triển Chúng ta chép tất mã nguồn ví dụ vào chương trình soạn thảo văn Notepad hay Emacs, lưu chúng dạng tập tin văn bản, biên dịch chúng trình biên dịch dòng lệnh C#, chương trình phân phối NET Framework SDK Trong chương cuối xây dựng ứng dụng Windows Web, sử dụng công cụ Visual Studio NET để tạo Windows Form Web Form, nhiên viết tay Notepad định sử dụng cách làm tay thay dùng công cụ thiết kế Sử dụng Notepad soạn thảo Đầu tiên mở chương trình Notepad soạn thảo chương trình minh họa trên, lưu ý ta sử dụng trình soạn thảo văn không thiết Notepad Sau soạn thảo xong lưu tập tin xuống đĩa tập tin có phần mở rộng *.cs, ví dụ chaomung.cs Bước biên dịch tập tin nguồn vừa tạo Để biên dịch ta dùng trình biên dịch dòng lệnh C# (csc.exe) chương trình chép vào máy trình cài NET Framework Để biết csc.exe nằm xác vị trí đĩa ta dùng chức tìm kiếm Windows Để thực biên dịch mở cửa sổ dòng lệnh đánh vào lệnh theo mẫu sau: csc.exe [/out: ] csc.exe /out:d:\chaomung.exe d:\chaomung.cs Thường biên dịch ta cần hai phần tên trình biên dịch tên tập tin nguồn mà Trong mẫu có dùng nhiều tùy chọn biên dịch /out, theo sau tên chương trình thực thi kết biên dịch tập tin nguồn Các tham số tùy chọn có nhiều muốn tìm hiểu dùng lệnh: csc.exe /? Lệnh xuất hình toàn tùy chọn biên dịch hướng dẫn sử dụng Hai hình sau minh họa trình nhập mã nguồn chương trình C# trình soạn thảo văn đơn giản Notepad Windows Và sau biên dịch tập tin mã 15/23 Ngôn ngữ C# nguồn vừa tạo chương trình csc.exe trình biên dịch dòng lệnh C# Kết tập tin thực thi tạo ta chạy chương trình Mã nguồn soạn thảo Notepad Biên dịch thực thi chương trình Sử dụng Visual Studio NET để tạo chương trình Để tạo chương trình chào mừng IDE, lựa chọn mục Visual Studio NET menu Start icon desktop, sau khởi động xong chương trình, chọn tiếp chức File New Project menu Chức gọi cửa sổ New Project (hình 2.4 bên dưới) Nếu chương trình Visual Studio NET chạy lần đầu tiên, cửa sổ New Project xuất tự động mà không cần phải kích hoạt Để tạo ứng dụng, ta lựa chọn mục Visual C# Projects cửa sổ Project Type bên trái Lúc nhập tên cho ứng dụng lựa chọn thư mục nơi lưu trữ tập tin Cuối cùng, kích vào OK chuyện khởi tạo chấm dứt cửa sổ xuất (hình 2.4 bên dưới), nhập mã nguồn vào 16/23 Ngôn ngữ C# Visual Studio NET tạo namespace dựa tên project mà ta vừa cung cấp (ChaoMung), thêm vào dẫn sử dụng namespace System lệnh using, chương trình mà viết cần sử dụng kiểu liệu chứa namespace System Tạo ứng dụng C# console Visual Studio NET Phần soạn thảo mã nguồn cho project 17/23 Ngôn ngữ C# Visual Studio NET tạo lớp tên Class1, lớp tùy ý đổi tên chúng Khi đổi tên lớp, tốt đổi tên tập tin chứa lớp đó(Class1.cs) Giả sử ví dụ đổi tên lớp thành ChaoMung, đổi tên tập tin Class1.cs (đổi tên tập tin cửa sổ Solution Explorer) Cuối cùng, Visual Studio NET tạo khung sườn chương trình, kết thúc với thích TODO vị trí bắt đầu Để tạo chương trình chào mừng minh họa trên, ta bỏ tham số string[] args hàm Main() xóa tất thích bên hàm Sau nhập vào dòng lệnh sau bên thân hàm Main() // Xuat man hinh System.Console.WriteLine("Chao Mung"); Sau tất công việc đó, phần biên dịch chương trình từ Visual Studio NET Thông thường để thực công việc ta chọn kích hoạt chức menu, hay button toolbar, cách nhanh sử dụng phím nóng hay phím kết hợp để gọi nhanh chức Trong ví dụ, để biên dịch chương trình nhấn Ctrl-Shift-B chọn chức năng: Build Build Solution Một cách khác dùng nút lệnh toolbar : Để chạy chương trình vừa tạo mà không sử dụng chế độ debug nhấn Ctrl-F5 hay chọn Debug Start Without Debugging nút lệnh toolbar Visual Studio NET Tốt hết nên bỏ nhiều thời gian để tìm hiểu hay khám phá môi trường phát triển Visual Studio NET Đây cách thức tốt mà người phát triển ứng dụng nên thực Việc tìm hiểu Visual Studio NET thông thạo giúp cho nhiều trình xây dựng phát triển ứng dụng sau Câu hỏi trả lời Một chương trình C# chạy máy nào? Không phải tất Một chương trình C# chạy máy có Common Language Runtime (CLR) cài đặt Nếu copy chương trình exe C# qua máy CLR nhận lỗi Trong phiên Windows CLR bảo thiếu tập tin DLL 18/23 Ngôn ngữ C# Nếu muốn đưa chương trình mà ta viết cho người bạn tập tin mà cần đưa? Thông thường cách tốt đưa chương trình biên dịch Điều có nghĩa sau mã nguồn biên dịch, có chương trình thực thi (tập tin có phần mở rộng *.exe ) Như vậy, muốn đưa chương trình Chaomung cho tất người bạn cần đưa tập tin Chaomung.exe Không cần thiết phải đưa tập tin nguồn Chaomung.cs Và người bạn không cần thiết phải có trình biên dịch C# Họ cần có C# runtime máy tính (như CLR Microsoft) chạy chương trình Sau tạo tập tin thực thi exe Có cần thiết giữ lại tập tin nguồn không? Nếu từ bỏ tập tin mã nguồn sau khó khăn cho việc mở rộng hay thay đổi chương trình, cần thiết phải giữ lại tập tin nguồn Hầu hết IDE tạo các tập tin nguồn (.cs) tập tin thực thi Cũng giữ tập tin nguồn cần thiết phải giữ tập tin khác tài nguyên bên icon, image, form Chúng ta lưu giữ tập tin trường hợp cần thay đổi hay tạo lại tập tin thực thi Nếu trình biên dịch C# đưa trình soạn thảo, có phải thiết phải sử dụng nó? Không hoàn toàn Chúng ta sử dụng trình soạn thảo văn lưu mã nguồn dạng tập tin văn Nếu trình biên dịch đưa trình soạn thảo nên sử dụng Nếu có môt trình soạn thảo khác tốt sử dụng Một số tiện ích soạn thảo mã nguồn giúp cho ta dễ dàng tìm lỗi cú pháp, giúp tạo số mã nguồn tự động đơn giản Nói chung tùy theo theo Visual Studio NET tốt để sử dụng Có thể không quan tâm đến cảnh báo biên dịch mã nguồn Một vài cảnh báo không ảnh hưởng đến chương trình chạy, số khác ảnh hưởng đến chương trình chạy Nếu trình biên dịch đưa cảnh báo, tức tín hiệu cho thứ không Hầu hết trình biên dịch cho phép thiết lập mức độ cảnh báo Bằng cách thiết lập mức độ cảnh báo quan tâm đến cảnh báo nguy hiểm, hay nhận hết tất cảnh báo Nói chung cách tốt nên xem tất cảnh báo để sửa chữa chúng, chương trình tạm gọi đạt yêu cầu lỗi biên dịch cảnh báo (nhưng chưa chạy kết quả!) Câu hỏi thêm Hãy đưa lý ngôn ngữ C# ngôn ngữ lập trình tốt? 19/23 Ngôn ngữ C# IL CLR viết tắt cho từ ý nghĩa nó? Đưa bước chu trình xây dựng chương trình? Trong biên dịch dòng lệnh lệnh sử dụng để biên dịch mã nguồn cs lệnh gọi chương trình nào? Phần mở rộng mà nên sử dụng cho tập tin mã nguồn C#? Một tập tin txt chứa mã nguồn C# có phải tập tin mã nguồn C# hợp lệ hay không? Có thể biên dịch hay không? Ngôn ngữ máy gì? Khi biên dịch mã nguồn C# tập tin exe tập tin ngôn ngữ gì? Nếu thực thi chương trình biên dịch không thực mong đợi chúng ta, điều cần phải làm? Một lỗi tương tự bên thường xuất nào? Tại phải khai báo static cho hàm Main lớp? Một mã nguồn C# có phải chứa lớp tồn bên lớp C/ C++? So sánh khác C# C/C++, C# với Java, hay ngôn ngữ cấp cao mà bạn biết? Con trỏ có sử dụng C# hay không? Nếu có quản lý nào? Khái niệm ý nghĩa namespace C#? Điều xảy ngôn ngữ lập trình không hỗ trợ namespace? Bài tập Dùng trình soạn thảo văn mở chương trình exe mà ta biên dịch từ chương trình nguồn trước xem khác hai tập tin này, lưu ý đóng tập tin ta không chọn lưu tập tin Nhập vào chương trình sau biên dịch Cho biết chương trình thực điều gì? -20/23 Ngôn ngữ C# using System; class variables { public static void Main() { int radius = 4; const double PI = 3.14159; double circum, area; area = PI * radius* radius; circum = * PI * radius; // in kết Console.WriteLine("Ban kinh = {0}, PI PI); Console.WriteLine("Dien tich Console.WriteLine("Chu vi {0}", circum); = {1}", {0}", radius, area); } } -Nhập vào chương trình sau biên dịch Cho biết chương trình thực điều gì? -class AClass { static void Main() 21/23 Ngôn ngữ C# { int x, y; for( x = 0; x < 10; x++, System.Console.Write("\n")); for( y = ; y System.Console.WriteLine("{0}",y)); < 10; y++, } } -Sửa lỗi biên dịch chương trình sau -class Test { pubic static void Main() { Console.WriteLine("Xin chao"); Consoile.WriteLine("Tam biet"); } } -Sửa lỗi biên dịch chương trình sau 22/23 Ngôn ngữ C# -class Test { pubic void Main() { Console.WriteLine(‘Xin biet’); chao’); Consoile.WriteLine(‘Tam } } Viết chương trình xuất thơ: Rằm Tháng Giêng Rằm xuân lồng lộng trăng soi, Sông xuân nước lẫn màu trời thêm xuân Giữa dòng bàn bạc việc quân Khuya bát ngát trăng ngân đầy thuyền Hồ Chí Minh 23/23 [...]... namespace c thể đư c chia thành c c namespace con gọi là subnamespace Ví dụ trong namespace System c chứa một số c c subnamesapce như Configuration, Collections, Data, và c n rất nhiều nữa, hơn nữa trong namespace Collection c n chia thành nhiều namesapce con nữa Namespace giúp chúng ta tổ ch c và ngăn c ch những kiểu Khi chúng ta viết một chương trình C# ph c tạp, chúng ta c thể phải tạo một kiến tr c. .. đổi chương trình, do đó c n thiết phải giữ lại c c tập tin nguồn Hầu hết c c IDE tạo ra c c c c tập tin nguồn (.cs) và c c tập tin th c thi C ng như giữ c c tập tin nguồn chúng ta c ng c n thiết phải giữ c c tập tin kh c như là c c tài nguyên bên ngoài c c icon, image, form Chúng ta sẽ lưu giữ những tập tin này trong trường hợp chúng ta c n thay đổi hay tạo lại tập tin th c thi Nếu trình biên dịch C# ... sau này C u hỏi và trả lời Một chương trình C# c thể chạy trên bất c máy nào? Không phải tất c Một chương trình C# chỉ chạy trên máy c Common Language Runtime (CLR) đư c cài đặt Nếu chúng ta copy một chương trình exe c a C# qua một máy không c CLR thì chúng ta sẽ nhận đư c một lỗi Trong những phiên bản c a Windows không c CLR chúng ta sẽ đư c bảo rằng thiếu tập tin DLL 18/23 Ngôn ngữ C# Nếu muốn... với c c namespace đã đư c xây dựng sẵn, c c namespace do chúng ta tạo ra, những namespace này chúng ta đã nắm ch c sưu liệu về nó C n đối với namespace do c c hãng thứ ba cung c p thì chúng ta không nên dùng từ khóa using Phân biệt chữ thường và chữ hoa C ng giống như C/ C++, C# là ngôn ngữ phân biệt chữ thường với chữ hoa, điều này c nghĩa rằng hai c u lệnh writeLine thì kh c với WriteLine và c ng... chúng ta thiết lập m c độ c nh báo Bằng c ch thiết lập m c độ c nh báo chúng ta c thể chỉ quan tâm đến những c nh báo nguy hiểm, hay nhận hết tất c những c nh báo Nói chung c ch tốt nhất là chúng ta nên xem tất c những c nh báo để sửa chữa chúng, một chương trình tạm gọi là đạt yêu c u khi không c lỗi biên dịch và c ng không c c nh báo (nhưng chưa ch c đã chạy đúng kết quả!) C u hỏi thêm Hãy đưa... thường để th c hiện một c ng vi c nào đó ta c thể chọn kích hoạt ch c năng trong menu, hay c c button trên thanh toolbar, và c ch nhanh nhất là sử dụng c c phím nóng hay c c phím kết hợp để gọi nhanh một ch c năng Trong ví dụ, để biên dịch chương trình nhấn Ctrl-Shift-B ho c chọn ch c năng: Build Build Solution Một c ch kh c nữa là dùng nút lệnh trên thanh toolbar : Để chạy chương trình vừa đư c tạo ra... mã nguồn C# c phải chứa trong c c lớp hay là c thể tồn tại bên ngoài lớp như C/ C+ +? So sánh sự kh c nhau c bản giữa C# và C/ C++, C# với Java, hay bất c ngôn ngữ c p cao nào mà bạn đã biết? Con trỏ c c n đư c sử dụng trong C# hay không? Nếu c thì nó đư c quản lý như thế nào? Khái niệm và ý nghĩa c a namespace trong C# ? Điều gì xảy ra nếu như ngôn ngữ lập trình không hỗ trợ namespace? Bài tập... namespace riêng cho mình,và không giới hạn chiều sâu c a c y phân c p namespace M c đích c a namespace là giúp chúng ta chia để quản lý những kiến tr c đối tượng ph c tạp Từ khóa using Để làm cho chương trình gọn hơn, và không c n phải viết từng namespace cho từng đối tượng, C# cung c p từ khóa là using, sau từ khóa này là một namespace hay subnamespace với mô tả đầy đủ trong c u tr c phân c p c a nó Ta c ... Chaomung.exe Không c n thiết phải đưa tập tin nguồn Chaomung.cs Và những người bạn c a chúng ta không c n thiết phải c trình biên dịch C# Họ chỉ c n c C# runtime trên máy tính (như CLR c a Microsoft) là c thể chạy đư c chương trình c a chúng ta Sau khi tạo ra đư c tập tin th c thi exe C c n thiết giữ lại tập tin nguồn không? Nếu chúng ta từ bỏ tập tin mã nguồn thì sau này sẽ rất khó khăn cho vi c mở rộng... c ng kh c với WRITELINE Đáng ti c là 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, nếu chúng ta viết hai chữ với c ch kh c nhau thì chúng ta c thể đưa vào chương trình gỡ rối tìm ra c c lỗi này Để trách vi c lãnh phí thời gian và c ng s c, người ta phát triển một số qui ư c cho c ch 13/23 Ngôn ngữ C# đặt tên biến, hằng, hàm, và nhiều định danh kh c nữa Qui ư c trong ... đ c tính ngôn ngữ đề c p m c trư c như: đơn giản, hướng đối tượng, mạnh mẽ Ngôn ngữ C# ngôn ngữ kh c Chúng ta nghe đến ngôn ngữ kh c Visual Basic, C+ + Java C lẽ tự hỏi kh c ngôn ngữ C# ngôn ngữ. .. lại chọn ngôn ngữ để h c mà không chọn ngôn ngữ C nhiều lý xem số so sánh ngôn ngữ C# với ngôn ngữ kh c giúp phần trả lời th c m c Microsoft nói C# mang đến s c mạnh ngôn ngữ C+ + với dễ dàng ngôn. .. Bằng c ch sử dụng ngôn ngữ Microsoft x c nhận khả C# c n thiết cho người lập trình Micorosoft NET lý kh c để đem đến thành c ng C# .NET thay đổi c ch tạo th c thi ứng dụng Ngoài hai lý ngôn ngữ C#

Ngày đăng: 31/12/2015, 21:46

Xem thêm

TỪ KHÓA LIÊN QUAN

w