Ngôn ngữ lập trình C# là gì
Trước khi tìm hiểu ngôn ngữ lập trình C#.net (gọi tắt là C#) tôi xin giới thiệu qua môi trường làm việc cũng như một vài thông tin về ngôn ngữ này.C# đọc là gì ?
Chắc chắn không phải là C “thăng” hay C “khác”, mà họ tên chính xác của ngôn ngữ này là C Sharp. 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 Delphi 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.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…). Có thể hiểu đơn giản đây là một trung tâm biên dịch trong đó tất cả các ngôn ngữ được hỗ trợ bởi .NET Framework sẽ được chuyển đổi ra MSIL (một dạng mã trung gian) rồi từ đấy mới được biên dịch tức thời (Just in time Compiler – JIT Compiler) thành các file thực thi như exe. Một thành tố quan trong nữa trong kiến trúc .NET Framework chính là CLR (.NET Common Language Runtime), khối chức năng cung cấp tất cả các dịch vụ mà chương trình cần giao tiếp với phần cứng, với hệ điều hành.
- 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.
- Luôn có sự so sánh giữa ngôn ngữ Java với C#, giữa công nghệ của Sun và công nghệ .NET từ Microsoft; nhiều sinh viên như chúng ta đôi khi băn khoăn giữa những sự lựa chọn này nhưng theo tôi không có gì là hoàn hảo và công nghệ hiện nay cũng vậy, chúng ta hoàn toàn có thể lựa chọn cả hai con đường để đi đến đích. (dù hơi mệt một tý)
Mối quan hệ giữa C# và .NET
C# là một ngôn ngữ lập trình mới, và được biết đến với hai
lời chào:
-
Nó được thiết kế riêng để dùng cho Microsoft's .NET Framework (Một nền khá mạnh cho sự phát triển, triển khai, hiện thực và phân phối các ứng dụng)
-
Nó là một ngôn ngữ hoàn toàn hướng đối tượng được thiết kế dựa trên kinh nghiệm của các ngôn ngữ hướng đối tượng khác.
Một điều quan trọng cần nhớ C# là một ngôn ngữ độc lập. Nó được
thiết kế để có thể sinh ra mã đích trong môi trường .NET, nó không phải là một
phần của .NET bởi vậy có một vài đặc trưng được hỗ trợ bởi .NET nhưng C# không
hỗ trợ và bạn cũng đừng ngạc nhiên khi có những đặc trưng C# hỗ trợ mà .NET
không hỗ trợ (chẳng hạn như quá tải toán tử)
Để tạo được những ứng dụng mang tính hiệu quả cao, chúng ta
sẽ xem qua về hoạt động của .NET
Chúng ta sẽ bắt đầu theo cách truyền thống là tạo một chương trình viết bằng C# rồi cho biên dịch và chạy thử nghiệm. Việc phân tích chương trình con này sẽ dẫn dắt bạn vào những chức năng chủ chốt của ngôn ngữ C#.
Bạn có thể biên dịch chương trình này bằng cách gõ vào chương trình soạn thảo văn bản đơn giản, Notepad chẳng hạn, rồi cho cất trữ dưới dạng tập tin với tên mở rộng là .cs (tắt chữ C sharp), rồi cho chạy trình biên dịch C# command_line (scs.exe) ví dụ tập tin First.cs :
using System;Một chương trình khả thi mang tên First.exe sẽ được tạo ra, và bạn có thể cho chạy chương trình này từ command line giống như với DOS hoặc từ Windows Explorer như bất cứ chương trình khả thi nào.Chạy chương trình như sau :
namespace Wrox.ProCSharp.Basics
{
class MyFirstCSharpClass
{
static void Main()
{
Console.WriteLine("This isn't at all like Java!");
Console.ReadLine();
return;
}
}
}
csc First.cs
Microsoft (R) Visual C# .NET Compiler version 7.00.9466
for Microsoft (R) .NET Framework version 1.0.3705
Copyright (C) Microsoft Corporation 2001. All rights reserved.
First
This isn't at all like Java!
Nhưng trước tiên bạn nên biết trên C# cũng như trên các ngôn ngữ C khác chương trình được cấu thành bởi câu lệnh (statement ) và câu lệnh C# được kết thúc bởi một dấu chấm phẩy (;).
Nhiều câu lệnh có thể gộp thành một khối được bao ở hai đầu bởi cặp dấu ngoặc nghéo {}, câu lệnh nếu dài có thể tiếp tục xuống hàng dưới không cần đến một ký tự báo cho biết câu lệnh tiếp tục hàng dưới.