Bài giảng Ngôn ngữ lập trình ứng dụng: Phần 1 – ĐH CNTT&TT
lượt xem 13
download
Bài giảng Ngôn ngữ lập trình ứng dụng có cấu trúc gồm 5 chương và được chia thành 2 phần. Phần 1 sau đây trình bày đến bạn đọc những kiến thức tổng quan về ngôn ngữ lập trình ứng dụng và ngôn ngữ lập trình C#. Mời các bạn cùng tham khảo để nắm bắt các nội dung chi tiết.
Bình luận(0) Đăng nhập để gửi bình luận!
Nội dung Text: Bài giảng Ngôn ngữ lập trình ứng dụng: Phần 1 – ĐH CNTT&TT
- TRƯỜNG ĐẠI HỌC CÔNG NGHỆ THÔNG TIN VÀ TRUYỀN THÔNG BỘ MÔN TRUYỀN THÔNG ĐA PHƯƠNG TIỆN BÀI GIẢNG Ngôn ngữ lập trình ứng dụng Thông tin môn học Số tín chỉ : 3 Số tiết lý thuyết : 30 Số tiết thực hành : 30 Số tiết thảo luận : 0 Hệ đào tạo : Đại học Ngành đào tạo : Truyền thông đa phương tiện Thái Nguyên, 2014
- Bài giảng Ngôn ngữ lập trình ứng dụng – Ngành Truyền thông đa phương tiện MỤC LỤC Chương 1: Tổng quan ......................................................................................................5 1.1 Tổng quan về Microsoft .Net .................................................................................5 1.1.1 Nguồn gốc Microsft .Net ................................................................................5 1.2 Ngôn ngữ C# ........................................................................................................10 1.2.1 Tại sao chọn ngôn ngữ C# ............................................................................10 1.2.2 Ngôn ngữ C# với ngôn ngữ khác ..................................................................12 1.3 Làm quen với visual studio 2010 .........................................................................13 1.3.1 Giới thiệu Visual Studio.NET 2010 ..............................................................13 1.3.2 Khởi động Visual C# 2010 và giao diện .......................................................14 1.3.3 Viết chương trình đầu tiên ............................................................................15 Chương 2: Ngôn ngữ lập trình C# .................................................................................17 2.1 Biến hằng và các kiểu dữ liệu ..............................................................................17 2.1.1 Biến ...............................................................................................................17 2.1.2 Hằng ..............................................................................................................17 2.1.3 Các kiểu dữ liệu ............................................................................................18 2.1.4 Chuyển kiểu dữ liệu ......................................................................................19 2.2 Biểu thức, toán tử, khoảng trắng ..........................................................................19 2.3 Nhập / xuất dữ liệu ...............................................................................................23 2.4 Các cấu trúc điều khiển ........................................................................................24 2.4.1 Câu lệnh lựa chọn if ......................................................................................24 2.4.2 Câu lệnh lựa chọn Case .................................................................................25 2.4.3 Cấu trúc lặp for..............................................................................................26 2.4.4 Cấu trúc lặp while. ........................................................................................27 2.4.5 Cấu trúc lặp do…while .................................................................................27 2.5 Mảng ....................................................................................................................28 2.5.1 Mảng một chiều.............................................................................................28 2.5.2 Câu lệnh foreach ...........................................................................................29 2.5.3 Mảng đa chiều ...............................................................................................29 2.7 Hàm và cách truyền tham số ................................................................................34 2.8 Xử lý ngoại lệ.......................................................................................................38 2.7.1 Phát sinh và bắt giữ ngoại lệ .........................................................................39 2.7.2 Những đối tượng ngoại lệ .............................................................................44 Chương 3: Lập trình hướng đối tượng trong C# ...........................................................46 3.1 Xây dựng lớp – Đối tượng ...................................................................................46 3.1.1 Định nghĩa lớp ...............................................................................................46 3.1.2 Tạo đối tượng ................................................................................................ 49 2 Bộ môn Truyền thông đa phương tiện – Trường Đại học Công nghệ thông tin và Truyền thông
- Bài giảng Ngôn ngữ lập trình ứng dụng – Ngành Truyền thông đa phương tiện 3.1.3 Sử dụng các thành viên static ........................................................................53 3.1.4 Nạp chồng .....................................................................................................54 3.2 Kế thừa - Đa hình .................................................................................................54 3.2.1 Sự kế thừa......................................................................................................54 3.2.2 Đa hình ..........................................................................................................58 3.2.3 Lớp trừu tượng, lớp cô lập, giao diện ...........................................................62 3.3 Các lớp cơ sở trong .NET ....................................................................................67 3.3.1 System.Object ...............................................................................................67 3.3.2 Xử lý mảng ....................................................................................................71 3.3.3 Xử lý chuỗi ....................................................................................................72 3.3.4 Biểu thức chính quy ( Regular Expression) ..................................................83 3.3.5 Nhóm các đối tượng ......................................................................................88 3.3.6 Dictionaries ...................................................................................................94 Chương 4: Lập trình winform .....................................................................................104 4.1 Tìm hiểu các điều khiển cơ bản .........................................................................104 4.1.1 Form ............................................................................................................106 4.1.3 Nút – Button ................................................................................................109 4.1.4 Nhãn – Label ...............................................................................................109 4.1.5 ToolTip ........................................................................................................109 4.2 Một số điều khiển khác ......................................................................................110 4.2.1 Hộp đánh dấu – CheckBox .........................................................................110 4.2.2 Nút tuỳ chọn – RadioButton .......................................................................110 4.2.3 Nhóm – GroupBox ......................................................................................110 4.2.4 Hộp danh sách – ListBox ............................................................................111 4.2.5 Hộp lựa chọn – ComboBox.........................................................................112 4.2.6 Điều khiển Panel .........................................................................................112 4.2.7 Điều khiển PictureBox ................................................................................112 4.2.8 Điều khiển Timer ........................................................................................113 4.2.9 ErrorProvider ( ) ..........................................................................................113 4.3 Các hộp thoại thông dụng .................................................................................113 4.3.1 Hộp hội thoại Open File ..............................................................................113 4.3.2 Hộp thoại SaveFile và luồng FileStream ....................................................115 4.3.3 Hộp thoại Color ...........................................................................................116 4.3.4 Hộp thoại Font.............................................................................................117 4.4 Menu .................................................................................................................118 4.4.1 Menu – MenuStrip ......................................................................................118 4.4.2 Popup menu – ContextMenuStrip ...............................................................119 3 Bộ môn Truyền thông đa phương tiện – Trường Đại học Công nghệ thông tin và Truyền thông
- Bài giảng Ngôn ngữ lập trình ứng dụng – Ngành Truyền thông đa phương tiện Chương 5: Lập trình cơ sở dữ liệu...............................................................................121 5.1 Hệ quản trị cơ sở dữ liệu MS SQL Server 2008 ................................................121 5.1.1 Tổng quan về SQL Server 2008 ..................................................................121 5.1.2 SQL Server Management Studio ................................................................122 5.1.3 Tạo cơ sở dữ liệu (database) .......................................................................123 5.1.3 Truy vấn dữ liệu cơ bản ..............................................................................128 5.2 Kết nối CS L.....................................................................................................131 5.2.1 Giới thiệu về A O.NET .............................................................................131 5.2.2 Kết nối .........................................................................................................133 5.3 Các đối tượng hiển thị và xử lý dữ liệu ..............................................................134 5.3.1 DataSet ........................................................................................................134 5.3.2 Xây dựng một lớp CS L dùng chung ........................................................137 5.4 Thiết kế báo cáo .................................................................................................142 4 Bộ môn Truyền thông đa phương tiện – Trường Đại học Công nghệ thông tin và Truyền thông
- Bài giảng Ngôn ngữ lập trình ứng dụng – Ngành Truyền thông đa phương tiện Chương 1: Tổng quan 1.1 Tổng quan về Microsoft .Net 1.1.1 Nguồn gốc Microsft .Net .NET Framework là một nền tảng lập trình tập hợp các thư viện lập trình có thể được cài thêm hoặc đã có sẵn trong các hệ điều hành Windows của hãng Microsoft. Nó cung cấp những giải pháp thiết yếu cho những yêu cầu thông thường của các chương trình điện toán như lập trình giao diện người dùng, truy cập dữ liệu, kết nối cơ sở dữ liệu, ứng dụng web, các giải thuật số học và giao tiếp mạng. Ngoài ra, .NET Framework quản lý việc thực thi các chương trình được viết dựa trên .NET Framework do đó người dùng cần phải cài .NET Framework để có thể chạy các chương trình được viết trên nền .NET. Các phiên bản của .net .NET framework 1.0 – 2002 Ngày 12/2/2002 đánh dấu bước quan trọng đầu tiên trong “cuộc đời” của .NET Framework, khi phiên bản 1.0 cùng với Visual Studio.NET 2002 được chính thức ra mắt. Chính .NET Framework 1.0 là điểm nhấn đáng chú ý nhất và làm cho Visual Studio. NET 2002 khác biệt hẳn với Visual Studio 6.0 đã phát hành năm 1998. Lần đầu tiên, Microsoft giới thiệu về “lập trình hợp nhất”, với việc lấy .NET Framework làm nền tảng. .NET framework 1.1 – 2003 Một năm sau ngày .NET Framework 1.0 ra đời, ngày 24/4/2003, Microsoft đã có ngay bản cập nhật 1.1 ra mắt cùng với Visual Studio.NET 2003. Không có nhiều nâng cấp đáng chú ý trong lần ra mắt này, đáng kể nhất là sự ra đời của .NET Compact Framework, phiên bản thu gọn của .NET Framework cho các thiết bị di động. Điều đáng tiếc là mặc dù có nền tảng rất tốt, cùng với sự hỗ trợ mạnh mẽ từ Microsoft, cho đến nay, .NET Compact Framework vẫn chưa phát triển như “lẽ ra nó phải thế”. Hiện nay số thiết bị di động chạy Windows Mobile/Windows Phone khá khiêm tốn so với các hệ điều hành (HĐH) còn lại. .NET Framework 1.1 cũng mở ra một “truyền thống” là kể từ đây, các HĐH Windows đều được cài đặt sẵn phiên bản .NET Framework mới nhất. Windows Server 2003 tiên phong với phiên bản 1.1, sau đó là Windows Vista với .NET 3.0, và gần đây nhất là Windows 7/Server 2008 với .NET 3.5 SP1. .NET framework 2.0 – 2005 Microsoft mất đến hơn 2 năm để phát triển .NET Framework 2.0 và Visual Studio 2005, và thời gian bỏ ra là thật sự đáng giá. Tháng 11/2005, hai sản phẩm này ra mắt với hàng loạt tính năng mới, trong đó đáng kể nhất là việc hỗ trợ hoàn toàn cho tính toán 64-bit, .NET Micro Framework, bổ sung và nâng cấp nhiều control của 5 Bộ môn Truyền thông đa phương tiện – Trường Đại học Công nghệ thông tin và Truyền thông
- Bài giảng Ngôn ngữ lập trình ứng dụng – Ngành Truyền thông đa phương tiện ASP.NET và đặc biệt là hỗ trợ Generics. .NET 2.0 hoàn toàn khác biệt so với các phiên bản trước. Generic cho phép chúng ta định kiểu an toàn (type safety). Chúng cho phép ta tạo ra một cấu trúc dữ liệu mà không cần phải xác định đó là kiểu dữ liệu gì. Tuy nhiên khi cấu trúc dữ liệu này được sử dụng, trình biên dịch phải đảm bảo rằng kiểu dữ liệu được sử dụng với nó là kiểu an toàn. Generic cũng tương đương vơi Template trong C++ tuy nhiên việc sử dụng Generic trong .NET dễ dàng hơn nhiều so với Template. Phiên bản 1.0 và 1.1 của .NET Framework không hỗ trợ generics. Thay vào đó, lập trình viên sử dụng lớp Object với các tham số và thành viên sẽ phải chuyển đổi tới các lớp khác dựa trên lớp Object. Generics mang đến hai tính năng cải tiến đáng kể đối với việc sử dụng lớp Object: Giảm bớt lỗi vận hành (Reduced run-time errors), Hiệu suất được cải thiện (Improved performance). .NET framework 3.5 – 2008 Nếu như 3 phiên bản trước đó, .NET Framwork đều gắn liền với một phiên bản Visual Studio nào đó, thì.NET Framework 3.5 đã “phá” truyền thống này khi ra mắt cùng với hệ điều hành Windows Vista vào cuối năm 2006. Ba “điểm nhấn” trong lần nâng cấp này là thành phần được kỳ vọng thay thế Winform – Windows Presentation Foundation – WPF, Windows Communitcation Foundation – WCF, Windows Workflow Foundation – WF, và Windows Card Space. .NET Framework 3.5 không phải là một phiên bản mới hoàn toàn, thực tế là một bản nâng cấp của .NET 2.0, hay đúng hơn là một bản nâng cấp cho thư viện của .NET 2.0. Chính vì không có Visual Studio “đi kèm”, mà .NET 3.5 đành phải “ký gửi” vào Visual Studio 2005 với một bộ công cụ mở rộng. Người dùng phải đợi đến tháng 11 năm 2007 mới được sử dụng một phiên bản Visual Studio hỗ trợ đầy đủ và toàn diện cho .NET 3.5, và hơn thế nữa. LINQ [LINQ: Language Integrated Query - đây là thư viện mở rộng cho các ngôn ngữ lập trình C# và Visual Basic.NET (có thể mở rộng cho các ngôn ngữ khác) cung cấp khả năng truy vấn trực tiếp dữ liệu đối tượng, CSDL và XML] là phần nổi bật và đáng chú ý nhất trong .NET 3.5. .NET framework 4.0 – 2010 Ngày 12/4/2010 Microsoft lại nâng cấp .NET Framework và Visual Studio. Đây là phiên bản đầu tiên sau .NET 2.0 kể từ 2005, có một CLR hoàn toàn mới: CLR 4.0. Cũng cần nhắc lại là cả .NET 3.0 và 3.5 đều sử dụng CLR 2.0, và không có CLR 3.0. Việc Microsoft chuyển thẳng lên 4.0 không chỉ để “đồng bộ” phiên bản, mà còn nhằm khẳng định đây là một bước tiến lớn. Các tính năng mới và cải tiến trong .NET Framework 4 là: 6 Bộ môn Truyền thông đa phương tiện – Trường Đại học Công nghệ thông tin và Truyền thông
- Bài giảng Ngôn ngữ lập trình ứng dụng – Ngành Truyền thông đa phương tiện • Application Compatibility and eployment (Khả năng tương thích ứng dụng và triển khai) • Core New Features and Improvements (Các tính năng mới và cải tiến của phần nhân) • Managed Extensibility Framework (Quản lý mở rộng Framework) • Parallel Computing (Điện toán song song) • Networking • Web • Client • ata • Windows Communication Foundation (WCF) • Windows Workflow Foundation (WF) 1.1.2 Microsoft .Net .NET Framework được thiết kế đầy đủ để đáp ứng theo quan điểm sau: - Để cung cấp một môi trường lập trình hướng đối tượng vững chắc, trong đó mã nguồn đối tượng được lưu trữ và thực thi một cách cục bộ. Thực thi cục bộ nhưng được phân tán trên Internet, hoặc thực thi từ xa. - Để cung cấp một môi trường thực thi mã nguồn mà tối thiểu được việc đóng gói phần mềm và sự tranh chấp về phiên bản. - Để cung cấp một môi trường thực thi mã nguồn mà đảm bảo việc thực thi an toàn mã nguồn, bao gồm cả việc mã nguồn được tạo bởi hãng thứ ba hay bất cứ - Để làm cho những người phát triển có kinh nghiệm vững chắc có thể nắm vững nhiều kiểu ứng dụng khác nhau, từ những ứng dụng trên nền Windows đến những ứng dụng dựa trên web. - Để xây dựng tất cả các thông tin dựa trên tiêu chuẩn công nghiệp để đảm bảo rằng mã nguồn trên .NET có thể tích hợp với bất cứ mã nguồn khác. 7 Bộ môn Truyền thông đa phương tiện – Trường Đại học Công nghệ thông tin và Truyền thông
- Bài giảng Ngôn ngữ lập trình ứng dụng – Ngành Truyền thông đa phương tiện Các thành phần trong .NET Framework. Common Language Runtime (CLR) CLR thực hiện quản lý bộ nhớ, quản lý thực thi tiểu trình, thực thi mã nguồn, xác nhận mã nguồn an toàn, biên bịch và các dịch vụ hệ thống khác. Những đặc tính trên là nền tảng cơ bản cho những mã nguồn được quản lý chạy trên CLR. Do chú trọng đến bảo mật, những thành phần được quản lý được cấp những mức độ quyền hạn khác nhau, phụ thuộc vào nhiều yếu tố nguyên thủy của chúng như: liên quan đến Internet, hệ thống mạng trong nhà máy, hay một máy tính cục bộ. Điều này có nghĩa rằng, một thành phần được quản lý có thể có hay không có quyền thực hiện một thao tác truy cập tập tin, thao tác truy cập registry, hay các chức năng nhạy cảm khác. CLR thúc đẩy mã nguồn thực hiện việc truy cập bảo mật. Ví dụ, người sử dụng giới hạn rằng việc thực thi nhúng vào trong một trang web có thể chạy được hoạt hình trên màn hình hay hát một bản nhạc, nhưng không thể truy cập được dữ liệu riêng tư, tập tin hệ thống, hay truy cập mạng. o đó, đặc tính bảo mật của CLR cho phép những phần mềm đóng gói trên Inernet có nhiều đặc tính mà không ảnh hưởng đến việc bảo mật hệ thống. CLR còn thúc đẩy cho mã nguồn được thực thi mạnh mẽ hơn bằng việc thực thi mã nguồn chính xác và sự xác nhận mã nguồn. Nền tảng của việc thực hiện này là Common Type System (CTS). CTS đảm bảo rằng những mã nguồn được quản lý thì được tự mô tả (self - describing). Sự khác nhau giữa Microsoft và các trình biên dịch ngôn ngữ của hãng thứ ba là việc tạo ra các mã nguồn được quản lý có thể thích hợp với CTS. Điều này thì mã nguồn được quản lý có thể sử dụng những kiểu được quản lý 8 Bộ môn Truyền thông đa phương tiện – Trường Đại học Công nghệ thông tin và Truyền thông
- Bài giảng Ngôn ngữ lập trình ứng dụng – Ngành Truyền thông đa phương tiện khác và những thể hiện, trong khi thúc đẩy nghiêm ngặt việc sử dụng kiểu dữ liệu chính xác và an toàn. Thêm vào đó, môi trường được quản lý của runtime sẽ thực hiện việc tự động xử lý layout của đối tượng và quản lý những tham chiếu đến đối tượng, giải phóng chúng khi chúng không còn được sử dụng nữa. Việc quản lý bộ nhớ tự động này còn giải quyết hai lỗi chung của ứng dụng: thiếu bộ nhớ và tham chiếu bộ nhớ không hợp lệ. Trong khi runtime được thiết kế cho những phần mềm của tương lai, nó cũng hỗ trợ cho phân mềm ngày nay và trước đây. Khả năng hoạt động qua lại giữa mã nguồn được quản lý và mã nguồn không được quản lý cho phép người phát triển tiếp tục sử dụng những thành phần cần thiết của COM và DLL. Rutime được thiết kế để cải tiến hiệu suất thực hiện. Mặc dù CLR cung cấp nhiều các tiêu chuẩn dịch vụ runtime, nhưng mã nguồn được quản lý không bao giờ được dịch. Có một đặc tính gọi là Just-in-Time (JIT) biên dịch tất cả những mã nguồn được quản lý vào trong ngôn ngữ máy của hệ thống vào lúc mà nó được thực thi. Khi đó, trình quản lý bộ nhớ xóa bỏ những phân mảnh bộ nhớ nếu có thể được và gia tăng tham chiếu bộ nhớ cục bộ, và kết quả gia tăng hiệu quả thực thi. Thư viện lớp .NET Framework Thư viện lớp .NET Framework là một tập hợp những kiểu dữ liệu được dùng lại và được kết hợp chặt chẽ với Common Language Runtime. Thư viện lớp là hướng đối tượng cung cấp những kiểu dữ liệu mà mã nguồn được quản lý của chúng ta có thể dẫn xuất. Điều này không chỉ làm cho những kiểu dữ liệu của .NET Framework dễ sử dụng mà còn làm giảm thời gian liên quan đến việc học đặc tính mới của .NET Framework. Thêm vào đó, các thành phần của các hãng thứ ba có thể tích hợp với những lớp trong.NET Framework. Cũng như mong đợi của người phát triển với thư viện lớp hướng đối tượng, kiểu dữ liệu .NET Framework cho phép người phát triển thiết lập nhiều mức độ thông dụng của việc lập trình, bao gồm các nhiệm vụ như: quản lý chuỗi, thu thập hay chọn lọc dữ liệu, kết nối với cơ cở dữ liệu, và truy cập tập tin. Ngoài những nhiệm vụ thông dụng trên. Thư viện lớp còn đưa vào những kiểu dữ liệu để hỗ trợ cho những kịch bản phát triển chuyên biệt khác. Ví dụ người phát triển có thể sử dụng .NET Framework để phát triển những kiểu ứng dụng và dịch vụ như sau: - Ứng dụng Console - Ứng dụng giao diện GUI trên Windows (WindowsForms) - Ứng dụng ASP.NET - Dịch vụ XMLWeb - Dịch vụ Windows 9 Bộ môn Truyền thông đa phương tiện – Trường Đại học Công nghệ thông tin và Truyền thông
- Bài giảng Ngôn ngữ lập trình ứng dụng – Ngành Truyền thông đa phương tiện Trong đó những lớp Windows Forms cung cấp một tập hợp lớn các kiểu dữ liệu nhằm làm đơn giản việc phát triển các ứng dụng GUI chạy trên Windows. Còn nếu như viết các ứng dụng ASP.NET thì có thể sử dụng các lớp WebForms trong thư viện .NET Framework. 1.2 Ngôn ngữ C# C# là một trong rất nhiều ngôn ngữ lập trình được hỗ trợ bởi .NET Framework (như C++, Java,VB…). Ngôn ngữ này được xây dựng và kiến trúc bởi Anders Hejlsberg, người đã viết nên trình biên dịch Pascal và có nhiều đóng góp cho elphi cũng như Java. Chính vì vậy dù mang họ nhà C nhưng C# là một ngôn ngữ hướng đối tượng hiện đại và dễ học, chịu ảnh hưởng và học hỏi nhiều tính ưu việt từ Java, C++ và các ngôn ngữ khác. Nếu bạn đã làm quen với Java thì không thể không biết đến máy ảo Java (JVM) nổi tiếng, nhưng đừng nghĩ .Net Framework là một máy ảo bởi thực tế bộ khung này không cài đặt các kỹ thuật máy ảo (ứng dụng viết bằng java sẽ chạy trên JVM). Ứng dụng trên nền .NET thực sự được biên dich và chạy ở mức mã máy, tương tự những ứng dụng quen thuộc viết bằng C, hay VB. Ngôn ngữ C# khá đơn giản, chỉ khoảng 80 từ khóa và hơn mười mấy kiểu dữ liệu được xây dựng sẵn. Tuy nhiên, ngôn ngữ C# lại có ý nghĩa cao khi nó thực thi những khái niệm lập trình hiện đại. C# bao gồm tất cả những hỗ trợ cho cấu trúc, thành phần component, lập trình hướng đối tượng. Những tính chất đó hiện diện trong một ngôn ngữ lập trình hiện đại. Và ngôn ngữ C# hội đủ những điều kiện như vậy, hơn nữa nó được xây dựng trên nền tảng của hai ngôn ngữ mạnh nhất là C++ và Java. 1.2.1 Tại sao chọn ngôn ngữ C# Ngôn ngữ C# là một ngôn ngữ được dẫn xuất từ C và C++, nhưng nó được tạo từ nền tảng phát triển hơn. Microsoft bắt đầu với công việc trong C và C++ và thêm vào những đặc tính mới để làm cho ngôn ngữ này dễ sử dụng hơn. Nhiều trong số những đặc tính này khá giống với những đặc tính có trong ngôn ngữ Java. Không dừng lại ở đó, Microsoft đưa ra một số mục đích khi xây dựng ngôn ngữ này. Những mục đích này được tóm tắt như sau: - C# là ngôn ngữ đơn giản - C# là ngôn ngữ hiện đại - C# là ngôn ngữ hướng đối tượng - C# là ngôn ngữ mạnh mẽ và mềm dẻo - C# là ngôn ngữ có ít từkhóa - C# sẽ trở nên phổ biến C# là ngôn ngữ đơn giản 10 Bộ môn Truyền thông đa phương tiện – Trường Đại học Công nghệ thông tin và Truyền thông
- Bài giảng Ngôn ngữ lập trình ứng dụng – Ngành Truyền thông đa phương tiện C# loại bỏ một vài sự phức tạp và rối rắm của những ngôn ngữ như Java và c++, bao gồm việc loại bỏ những macro, những template, đa kế thừa, và lớp cơ sở ảo (virtual base class). Chúng là những nguyên nhân gây ra sự nhầm lẫn hay dẫn đến những vấn đề cho các người phát triển C++. Ngôn ngữ C# đơn giản vì nó dựa trên nền tảng C và C++. Nếu chúng ta thân thiện với C và C++ hoậc thậm chí là Java, chúng ta sẽ thấy C# khá giống về diện mạo, cú pháp, biểu thức, toán tử và những chức năng khác được lấy trực tiếp từ ngôn ngữ C và C++, nhưng nó đã được cải tiến để làm cho ngôn ngữ đơn giản hơn. Một vài trong các sự cải tiến là loại bỏ các dư thừa, hay là thêm vào những cú pháp thay đổi. Ví dụ như, trong C++ có ba toán tử làm việc với các thành viên là ::, . , và ->. Để biết khi nào dùng ba toán tử này cũng phức tạp và dễ nhầm lẫn. Trong C#, chúng được thay thế với một toán tử duy nhất gọi là . (dot). Đối với người mới học thì điều nàyvà những việc cải tiến khác làm bớt nhầm lẫn và đơn giản hơn. C# là ngôn ngữ hiện đại Điều gì làm cho một ngôn ngữ hiện đại? Những đặc tính như là xử lý ngoại lệ, thu gom bộ nhớ tự động, những kiểu dữ liệu mở rộng, và bảo mật mã nguồn là những đặc tính được mong đợi trong một ngôn ngữ hiện đại. C# chứa tất cả những đặc tính trên. Nếu là người mới học lập trình có thể chúng ta sẽ cảm thấy những đặc tính trên phức tạp và khó hiểu. Tuy nhiên, cũng đừng lo lắng chúng ta sẽ dần dần được tìm hiểu những đặc tính đó. C# là ngôn ngữ hướng đối tượng Những đặc điểm chính của ngôn ngữ hướng đối tượng (Object-oriented language) là sự đóng gói (encapsulation), sự kế thừa (inheritance), và đa hình (polymorphism). C# hỗ trợ tất cả những đặc tính trên. Phần hướng đối tượng của C# sẽ được trình bày chi tiết trong một chương riêng ở phần sau. C# là ngôn ngữ mạnh mẽ và cũng mềm dẻo Như đã đề cập trước, với ngôn ngữ C# chúng ta chỉ bị giới hạn ở chính bởi bản thân hay là trí tưởng tượng của chúng ta. Ngôn ngữ này không đặt những ràng buộc lên những việc có thể làm. C# được sử dụng cho nhiều các dự án khác nhau như là tạo ra ứng dụng xử lý văn bản, ứng dụng đồ họa, bản tính, hay thậm chí những trình biên dịch cho các ngôn ngữ khác. C# là ngôn ngữ ít từ khóa C# là ngôn ngữ sử dụng giới hạn những từ khóa. Phần lớn các từ khóa được sử dụng để mô tả thông tin. Chúng ta có thể nghĩ rằng một ngôn ngữ có nhiều từ khóa thì sẽ mạnh hơn. Điều này không phải sự thật, ít nhất là trong trường hợp ngôn ngữ C#, chúng ta có thể tìm thấy rằng ngôn ngữ này có thể được sử dụng để làm bất cứ nhiệm vụ nào. Bảng sau liệt kê các từ khóa của ngôn ngữ C#. 11 Bộ môn Truyền thông đa phương tiện – Trường Đại học Công nghệ thông tin và Truyền thông
- Bài giảng Ngôn ngữ lập trình ứng dụng – Ngành Truyền thông đa phương tiện Bảng 1.2: Từ khóa của ngôn ngữ C#. 1.2.2 Ngôn ngữ C# với ngôn ngữ khác Chúng ta đã từng nghe đến những ngôn ngữ khác như Visual Basic, C++ và Java. Có lẽ chúng ta cũng tự hỏi sự khác nhau giữa ngôn ngữ C# và nhưng ngôn ngữ đó. Và cũng tự hỏi tại sao lại chọn ngôn ngữ này để học mà không chọn một trong những ngôn ngữ kia. Có rất nhiều lý do và chúng ta hãy xem một số sự so sánh giữa ngôn ngữ C# với những ngôn ngữ khác giúp chúng ta phần nào trả lời được những thắc mắc. Microsoft nói rằng C# mang đến sức mạnh của ngôn ngữ C++ với sự dễ dàng của ngôn ngữ Visual Basic. Có thể nó không dễ như Visual Basic, nhưng với phiên bản Visual Basic.NET (Version 7) thì ngang nhau. Bởi vì chúng được viết lại từ một nền tảng. Chúng ta có thể viết nhiều chương trình với ít mã nguồn hơn nếu dùng C#. Mặc dù C# loại bỏ một vài các đặc tính của C++, nhưng bù lại nó tránh được những lỗi mà thường gặp trong ngôn ngữ C++. Điều này có thể tiết kiệm được hàng giờ hay thậm chí hàng ngày trong việc hoàn tất một chương trình. Một điều quan trọng khác với C++ là mã nguồn C# không đòi hỏi phải có tập tin header. Tất cả mã nguồn được viết trong khai báo một lớp. Như đã nói ở bên trên. .NET runtime trong C# thực hiện việc thu gom bộ nhớ tự động. Do điều này nên việc sử dụng con trỏ trong C# ít quan trọng hơn trong C++. 12 Bộ môn Truyền thông đa phương tiện – Trường Đại học Công nghệ thông tin và Truyền thông
- Bài giảng Ngôn ngữ lập trình ứng dụng – Ngành Truyền thông đa phương tiện Những con trỏ cũng có thể được sử dụng trong C#, khi đó những đoạn mã nguồn này sẽ được đánh dấu là không an toàn (unsafecode). Điểm giống nhau C# và Java là cả hai cùng biên dịch ra mã trung gian: C# biên dịch ra MSIL còn Java biên dịch ra bytecode. Sau đó chúng được thực hiện bằng cách thông dịch hoặc biên dịch just-in-time trong từng máy ảo tương ứng. Tuy nhiên, trong ngôn ngữ C# nhiều hỗ trợ được đưa ra để biên dịch mã ngôn ngữ trung gian sang mã máy. C# chứa nhiều kiểu dữ liệu cơ bản hơn Java và cũng cho phép nhiều sự mở rộng với kiểu dữ liệu giá trị. Ví dụ, ngôn ngữ C# hỗ trợ kiểu liệt kê (enumerator), kiểu này được giới hạn đến một tập hằng được định nghĩa trước, và kiểu dữ liệu cấu trúc đây là kiểu dữ liệu giá trị do người dùng định nghĩa. Chúng ta sẽ được tìm hiểu kỹ hơn về kiểu dữ liệu tham chiếu và kiểu dữ liệu giá trị sẽ được trình bày trong phần sau. Tương tự như Java, C# cũng từ bỏ tính đa kế thừa trong một lớp, tuy nhiên mô hình kế thừa đơn này được mở rộng bởi tính đa kế thừa nhiều giao diện. 1.3 Làm quen với visual studio 2010 1.3.1 Giới thiệu Visual Studio.NET 2010 Visual Studio .NET là môi trường tích hợp phát triển phần mềm (Integrated Development Environment (IDE)) của Microsoft, là công cụ cho phép bạn viết mã, gỡ rối và biên dịch chương trình trong nhiều ngôn ngữ lập trình .NET khác nhau như C#, Vb.Net, C++.Net… 13 Bộ môn Truyền thông đa phương tiện – Trường Đại học Công nghệ thông tin và Truyền thông
- Bài giảng Ngôn ngữ lập trình ứng dụng – Ngành Truyền thông đa phương tiện 1.3.2 Khởi động Visual C# 2010 và giao diện Để khởi động chương trình Visual Studio.Net 2010 click vào biểu tượng (shortcut) của VS 2010 trên màng hình desktop hoặc trong menu Start của window để khởi chạy chương trình. Khi chương trình chạy lên ta sẽ có giao diện như sau: 1 - Đây là chức năng cho phép ta làm việc theo nhóm khi giữa các nhóm người lập trình xây dựng cùng một project 2 - Thực hiện việc tạo một project mới (Bạn cũng có thể vào menu file –> new project cũng được) 3 - Mở một project mà bạn đã làm trước đó. 4 - Danh sách các project mà bạn đã mở gần đây nhất (mặc định của nó là 5 project mở gần nhất). 5 - Nơi cung cấp các đường link hướng dẫn, quảng cáo và giới thiệu sử dụng nó cho việc lập trình. 6 - Đây là các ockBar động của nó: - Server Explorer: dùng để kế nối với các cơ sở dữ liệu - ToolBox: Chứa các control cho bạn thiết kế - Document Outline: Thể hiện sơ đồ cấu trúc của các control được bạn thiết kế trên form 7 - Cũng là một DockBar - Solution Explorer: Hiển thị sơ đồ cấu trúc của project. Nó khác với Ouline Document ở chỗ nó là sơ đồ tổng thể của project, còn Ourline ocument là sơ đồ chi tiết thiết kế các control trên một form và nó sẽ tùy biến theo các form mà bạn chọn. 14 Bộ môn Truyền thông đa phương tiện – Trường Đại học Công nghệ thông tin và Truyền thông
- Bài giảng Ngôn ngữ lập trình ứng dụng – Ngành Truyền thông đa phương tiện - Team Explorer: Sơ đồ của các nhóm làm việc chung trong một project - Class View: Thể hiện các class, namespace của các hàm mà bạn sẽ sử dụng cho viết code có trong Visual Studio (VS) 8 - Cũng là một DockBar - Output: Các giá trị sẽ thể hiện cho người lập trình thấy khi chạy chương trình - Error List: Danh sách các lỗi xảy ra khi thực hiện buil chương trình. 1.3.3 Viết chương trình đầu tiên - Bước 1. Mở VS2010 tạo project mới 15 Bộ môn Truyền thông đa phương tiện – Trường Đại học Công nghệ thông tin và Truyền thông
- Bài giảng Ngôn ngữ lập trình ứng dụng – Ngành Truyền thông đa phương tiện - Bước 2. Viết code - Bước 3. Chạy chương trình (nhấn F5) 16 Bộ môn Truyền thông đa phương tiện – Trường Đại học Công nghệ thông tin và Truyền thông
- Bài giảng Ngôn ngữ lập trình ứng dụng – Ngành Truyền thông đa phương tiện Chương 2: Ngôn ngữ lập trình C# 2.1 Biến hằng và các kiểu dữ liệu 2.1.1 Biến Một biến là một vùng lưu trữ một kiểu dữ liệu. Biến có thể được gán giá trị và cũng có thể thay đổi giá trị khi thực hiện các lệnh trong chương trình. Để tạo một biến chúng ta phải khai báo kiểu của biến và gán cho biến một tên duy nhất. Biến có thể được khởi tạo giá trị ngay khi được khai báo, hay nó cũng có thể được gán một giá trị mới vào bất cứ lúc nào trong chương trình. Cú pháp: [= giá trị khởi tạo]; Ví dụ. Khai báo biến static void Main() { int bien1; //Khai báo biến kiểu nguyên tên là bien1, mặc định khi khởi tạo bien1=0 int bien2= 9;//Khai báo biến kiểu nguyên có tên là bien2 với giá trị khởi tạo là 9 } *Lưu ý: Quy tắc đặt tên biến - Tên biến chỉ có thể bao gồm chữ số, chữ cái và “_” - Tên biến không được bắt đầu bằng số - Tên trong C# là phân biệt chữ hoa chữ thường - Theo quy ước đặt tên của Microsoft thì đề nghị sử dụng cú pháp lạc đà (camel notation) như sau: tên biến bắt đầu bằng ký tự thường (cú pháp Pascal), tên hàm và các định danh có ký tự đầu tiên viết hoa. 2.1.2 Hằng Hằng cũng là một biến nhưng giá trị của hằng không thay đổi. Biến là công cụ rất mạnh, tuy nhiên khi làm việc với một giá trị được định nghĩa là không thay đổi, ta phải đảm bảo giá trị của nó không được thay đổi trong suốt chương trình. Ví dụ, khi lập một chương trình thí nghiệm hóa học liên quan đến nhiệt độ sôi, hay nhiệt độ đông của nước, chương trình cần khai báo hai biến là DoSoi và DoDong, nhưng không cho phép giá trị của hai biến này bị thay đổi hay bị gán.Để ngăn ngừa việc gán giá trị khác, ta phải sử dụng biến kiểu hằng. Cú pháp: =; Ví dụ: const int DoSoi=100; //Hằng DoSoi này sẽ có giá trị là 100 trong suốt chương trình và không thể thay đổi được 17 Bộ môn Truyền thông đa phương tiện – Trường Đại học Công nghệ thông tin và Truyền thông
- Bài giảng Ngôn ngữ lập trình ứng dụng – Ngành Truyền thông đa phương tiện 2.1.3 Các kiểu dữ liệu C# chia thành hai tập hợp kiểu dữ liệu chính: Kiểu xây dựng sẵn (built- in) mà ngôn ngữ cung cấp cho người lập trình và kiểu được người dùng định nghĩa (user- defined) do người lập trình tạo ra. Kiểu dữ liệu xây dựng sẵn Ngôn ngữ C# đưa ra các kiểu dữ liệu xây dựng sẵn rất hữu dụng, phù hợp với một ngôn ngữ lập trình hiện đại, mỗi kiểu dữ liệu được ánh xạ đến một kiểu dữ liệu được hỗ trợ bởi hệ thống xác nhận ngôn ngữ chung (Common Language Specification: CLS) trong MS.NET. Việc ánh xạ các kiểu dữ liệu nguyên thuỷ của C# đến các kiểu dữ liệu của .NET sẽ đảm bảo các đối tượng được tạo ra trong C# có thể được sử dụng đồng thời với các đối tượng được tạo bởi bất cứ ngôn ngữ khác được biên dịch bởi .NET, như VB.NET. Mỗi kiểu dữ liệu có một sự xác nhận và kích thước không thay đổi, không giống như C++, int trong C# luôn có kích thước là 4 byte bởi vì nó được ánh xạ từ kiểu Int32 trong .NET. Việc chọn một kiểu dữ liệu để sử dụng dựa vào độ lớn, kiểu của giá trị muốn sử dụng. Một số kiểu dữ liệu xây dựng sẵn trong C# Kiểu C# Kích thước Kiểu .Net Mô tả (byte) byte 1 Byte Số nguyên dương không dấu từ 0-255 char 2 Char Ký tự Unicode int 4 Int32 Số nguyên có dấu –2.147.483.647 và 2.147.483.647 float 4 Float Kiểu dấu chấm động, giá trị xấp xỉ từ 3,4E-38 đến 3,4E+38, với 7 chữ số có nghĩa.. double 8 Double Kiểu dấu chấm động có độ chính xác gấp đôi, giá trị xấp xỉ từ 1,7E-308 đến 1,7E+308, với 15,16 chữsố có nghĩa. bool 1 Bool Giá trị logic true/ false long 8 Int64 Kiểu số nguyên có dấu có giá trị trong khoảng: -9.223.370.036.854.775.808 đến 9.223.372.036.854.775.807 Kiểu chuỗi ký tự Kiểu dữ liệu chuỗi khá thân thiện với người lập trình trong bất cứ ngôn ngữ lập trình nào, kiểu dữ liệu chuỗi lưu giữ một mảng những ký tự. Để khai báo một chuỗi 18 Bộ môn Truyền thông đa phương tiện – Trường Đại học Công nghệ thông tin và Truyền thông
- Bài giảng Ngôn ngữ lập trình ứng dụng – Ngành Truyền thông đa phương tiện chúng ta sử dụng từ khoá string tương tự như cách tạo một thể hiện của bất cứ đối tượng nào: string chuoi; Một hằng chuỗi được tạo bằng cách đặt các chuỗi trong dấu nháy đôi: “Xin chao” Đây là cách chung để khởi tạo một chuỗi ký tự với giá trị hằng: string chuoi = “Xinchao” 2.1.4 Chuyển kiểu dữ liệu Những đối tượng của một kiểu dữ liệu này có thể được chuyển sang những đối tượng của một kiểu dữ liệu khác thông qua cơ chế chuyển đổi tường minh hay ngầm định. Chuyển đổi ngầm định được thực hiện một cách tự động, trình biên dịch sẽ thực hiện công việc này. Còn chuyển đổi tường minh diễn ra khi chúng ta gán ép một giá trị cho kiểu dữ liệu khác. Việc chuyển đổi giá trị ngầm định được thực hiện một cách tự động và đảm bảo không mất thông tin. Ví dụ, chúng ta có thể gán ngầm định một số kiểu short (2 byte) vào một số kiểu int (4 byte) một cách ngầm định. Sau khi gán hoàn toàn không mất dữ liệu vì bất cứ giá trị nào của short cũng thuộc về int: short x = 10; int y =x; // chuyển đổi ngầm định Tuy nhiên, nếu chúng ta thực hiện chuyển đổi ngược lại, chắc chắn chúng ta sẽ bị mất thông tin. Nếu giá trị của số nguyên đó lớn hơn 32.767 thì nó sẽ bị cắt khi chuyển đổi. Trình biên dịch sẽ không thực hiện việc chuyển đổi ngầm định từ số kiểu int sang số kiểu short: short x; int y =100; x = y; // Không biên dịch, lỗi !!! Để không bị lỗi chúng ta phải dùng lệnh gán tường minh, đoạn mã trên được viết lại như sau: short x; int y =500; x = (short) y; // Ép kiểu tường minh, trình biên dịch không báo lỗi 2.2 Biểu thức, toán tử, khoảng trắng Biểu thức Những câu lệnh mà thực hiện việc đánh giá một giá trị gọi là biểu thức. Một phép gán một giá trị cho một biến cũng là một biểu thức: var1 = 24; 19 Bộ môn Truyền thông đa phương tiện – Trường Đại học Công nghệ thông tin và Truyền thông
- Bài giảng Ngôn ngữ lập trình ứng dụng – Ngành Truyền thông đa phương tiện Trong câu lệnh trên phép đánh giá hay định lượng chính là phép gán có giá trị là 24 cho biến var1. Lưu ý là toán tử gán (‘=’) không phải là toán tử so sánh. Do vậy khi sử dụng toán tử này thì biến bên trái sẽ nhận giá trị của phần bên phải. Các toán tử của ngôn ngữ C# như phép so sánh hay phép gán sẽ được trình bày chi tiết trong mục toán tử. Do var1 = 24 là một biểu thức được định giá trị là 24 nên biểu thức này có thể được xem như phần bên phải của một biểu thức gán khác: var2 = var1 = 24; Lệnh này sẽ được thực hiện từ bên phải sang khi đó biến var1 sẽ nhận được giá trị là 24 và tiếp sau đó thì var2 cũng được nhận giá trị là 24. Do vậy cả hai biến đều cùng nhận một giá trị là 24. Có thể dùng lệnh trên để khởi tạo nhiều biến có cùng một giá trị như: a = b =c = d = 24; Khoảng trắng C# sẽ bỏ qua tất cả các khoảng trắng vô nghĩa, do vậy chúng ta có thể viết như sau: var1 = 24; hay var1 = 24 ; và trình biên dịch C# sẽ xem hai câu lệnh trên là hoàn toàn giốngnhau. Tuy nhiên lưu ý là khoảng trắng trong một chuỗi sẽ không được bỏ qua. Nếu chúng ta viết: System.WriteLine(“Xin chao!”); mỗi khoảng trắng ở giữa hai chữ “Xin” và “chao” đều được đối xử bình thường như các ký tự khác trong chuỗi. Câu lệnh (statement) Trong C# một chỉ dẫn lập trình đầy đủ được gọi là câu lệnh. Chương trình bao gồm nhiều câu lệnh tuần tự với nhau. Mỗi câu lệnh phải kết thúc với một dấu chấm phẩy, ví dụ như: int x; // một câu lệnh x = 32; // câu lệnh khác int y =x; // đây cũng là một câu lệnh Chúng ta có thể viết lời chú thích bằng việc sử dụng // (chú thích trên một dòng) hoặc /* */ (chú thích trên nhiều dòng). Toán tử 20 Bộ môn Truyền thông đa phương tiện – Trường Đại học Công nghệ thông tin và Truyền thông
CÓ THỂ BẠN MUỐN DOWNLOAD
-
Bài giảng Ngôn ngữ lập trình Java căn bản
115 p | 351 | 104
-
Bài giảng Ngôn ngữ lập trình C++: Chương 1 - Trần Minh Châu
17 p | 250 | 54
-
Bài giảng Ngôn ngữ lập trình C# - Nguyễn Hồng Phương
409 p | 214 | 41
-
Bài giảng Ngôn ngữ lập trình C và C++ (Phần 1: Ngôn ngữ lập trình C) - Chương 1: Ôn tập một số nội dung chính của NNLT C
31 p | 157 | 13
-
Bài giảng Ngôn ngữ lập trình bậc cao - Th.S Đoàn Thị Thu Huyền
44 p | 150 | 10
-
Bài giảng Ngôn ngữ lập trình C: Chương 1 - TS. Nguyễn Thị Hiền
12 p | 62 | 9
-
Bài giảng Ngôn ngữ lập trình - Nguyễn Văn Linh
109 p | 118 | 8
-
Bài giảng Ngôn ngữ lập trình C - Chương 1: Giới thiệu ngôn ngữ C
4 p | 104 | 8
-
Bài giảng Ngôn ngữ lập trình C và C++: Bài 1 - TS. Đỗ Đăng Khoa
53 p | 112 | 7
-
Bài giảng Ngôn ngữ lập trình C và C++ (Phần 2: Ngôn ngữ lập trình C++) - Chương 5: Các lớp nhập/xuất trong C++
19 p | 132 | 7
-
Bài giảng Ngôn ngữ lập trình C: Chương 1 - PhD. Nguyễn Thị Huyền
12 p | 55 | 7
-
Bài giảng Ngôn ngữ lập trình C và C++ (Phần 2: Ngôn ngữ C++) - Chương 2: Giới thiệu về ngôn ngữ lập trình C++
49 p | 137 | 7
-
Bài giảng Ngôn ngữ lập trình C và C++: Bài 4 - TS. Đỗ Đăng Khoa
40 p | 95 | 5
-
Bài giảng Ngôn ngữ lập trình C/C++ (Bài giảng tuần 1) – Nguyễn Hải Châu
7 p | 142 | 5
-
Bài giảng Ngôn ngữ lập trình C và C++ (Phần 2: Ngôn ngữ lập trình C++) - Chương 3: Lớp và đối tượng
52 p | 112 | 5
-
Bài giảng Ngôn ngữ lập trình C và C++ (Phần 2: Ngôn ngữ lập trình C++) - Chương 6: Mẫu (template)
27 p | 85 | 4
-
Bài giảng Ngôn ngữ lập trình: Bài 1 - Lý Anh Tuấn
30 p | 82 | 4
Chịu trách nhiệm nội dung:
Nguyễn Công Hà - Giám đốc Công ty TNHH TÀI LIỆU TRỰC TUYẾN VI NA
LIÊN HỆ
Địa chỉ: P402, 54A Nơ Trang Long, Phường 14, Q.Bình Thạnh, TP.HCM
Hotline: 093 303 0098
Email: support@tailieu.vn