C thăng (ngôn ngữ lập trình)

Từ C và âm nhạc đến C#

Cái tên "C sharp" được lấy cảm hứng từ ký hiệu âm nhạc, trong đó một dấu thăng sau nốt nhạc "#" nghĩa là một nốt được chơi cao hơn nửa cung. Điều này tương tự như trường hợp đặt tên của ngôn ngữ của C++, trong đó "++" chỉ ra rằng giá trị của một biến nên được tăng lên 1. Biểu tượng # cũng giống với bốn ký tự "+" (trong một lưới 2x2), ngụ ý rằng ngôn ngữ là một phiên bản tăng cường của C++ (gấp đôi C++).
Bởi vì giới hạn kỹ thuật của việc hiển thị (các font chuẩn, trình duyệt...) và sự thật là ký tự thăng (U+266F ♯ MUSIC SHARP SIGN (HTML &#9839;)) không hiện diện trong đa số các bàn phím, ký tự (U+0023 # NUMBER SIGN (HTML &#35;)) đã được chọn để diễn đạt một cách tương đương trong cách viết tên ngôn ngữ.
Hậu tố "#" đã được sử dụng bởi một số ngôn ngữ khác của.NET là các biến thể của các ngôn ngữ hiện tại, bao gồm J# (một ngôn ngữ.NET cũng được thiết kế bởi Microsoft có nguồn gốc từ Java 1.1), A# (từ Ada) và ngôn ngữ lập trình chức năng F#. Việc triển khai ban đầu của Eiffel for.NET được gọi là Eiffel#. Hậu tố cũng đã được sử dụng cho các thư viện, chẳng hạn như Gtk# (một wrapper NET cho GTK+ và các thư viện GNOME khác) và Cocoa#.

.NET Framework

.NET Framework là một thư viện class có thể được sử dụng với một ngôn ngữ.NET để thực thi các việc từ thao tác chuỗi cho đến phát sinh ra các trang web động (ASP.NET), phân tích XML và reflection..NET Framework được tổ chức thành tập hợp các namespace, nhóm các class có cùng chức năng lại với nhau, ví dụ như System.Drawing cho đồ hoạ, System.Collections cho cấu trúc dữ liệu và System.Windows.Forms cho hệ thống Windows Forms.
Cấp cao hơn nữa được cung cấp bởi khái niệm này là assembly. Một assembly là một file hoặc nhiều file được liên kết với nhau (thông qua file al.exe), chứa đựng nhiều namespace và object. Các chương trình cần các lớp để thực thi một chức năng đặc biệt nào đó sẽ tham chiếu các assembly chẳng hạn như System.Drawing.dll và System.Windows.Forms.dll cũng như các core library (lưu trong file mscorlib.dll).

Ví dụ đơn giản Hello World

Dưới đây là một chương trình C# rất đơn giản, với ví dụ "Hello World" kinh điển:
using System;class ExampleClass{
    static void Main(string[] args)
    {
        Console.WriteLine("Hello World!");
    }}
Chương trình này sẽ in ra màn hình console kết quả như sau:
Hello World!
Ở đoạn code trên, mỗi dòng code có một mục đích đặc biệt, chi tiết như sau:
Đầu tiên, dòng sau báo cho trình biên dịch biết chương trình sẽ sử dụng thư viện System.
using System;
Tiếp theo, dòng sau khai báo một lớp.
class ExampleClass
Hàm Main là hàm khởi động của chương trình. Trong C#, hầu như tất cả các hàm đều nằm trong một lớp nào đó. Do đó, Main có thể được đặt ở bất kỳ lớp nào trong chương trình, và khi có nhiều hàm Main, lập trình viên sẽ phải cấu hình cho trình biên dịch biết rằng hàm Main nào sẽ là hàm khởi động. Trong trường hợp này, chương trình của chúng ta sẽ sử dụng hàm Main ở class ExampleClass, hàm này trả về void (không có giá trị nào cả).
static void Main(string[] args)

Vì được khai báo là static, lập trình viên có thể gọi hàm này từ đoạn code khác với cú pháp 
ExampleClass.Main()
Cuối cùng, câu lệnh sau là lệnh in ra màn hình của C#:
Console.WriteLine("Hello World!");
Console là một lớp static ở namespace System. Lớp này cung cấp các interface chuẩn cho việc nhập, xuất và báo lỗi của chương trình C#. Chương trình của chúng ta gọi hàm WriteLine và in ra dòng "Hello World!"