Menu
CoddyTech

Cheat sheet C#

Cập nhật lần cuối

Hello World và cấu trúc chương trình

Câu lệnh cấp cao nhất (top-level statement, từ .NET 6) giúp bạn bỏ qua lớp khai báo rườm rà.

Thành phầnCode
Chương trình top-levelConsole.WriteLine("Hello, World!");
Nhập một namespaceusing System;
Điểm bắt đầu kiểu truyền thốngstatic void Main(string[] args) { ... }
In một dòngConsole.WriteLine("text");
Đọc một dòngstring s = Console.ReadLine();
Nội suy chuỗiConsole.WriteLine($"Hi {name}");
Chú thích// line và /* block */

Kiểu dữ liệu

KiểuMô tả
intSố nguyên có dấu 32 bit
longSố nguyên có dấu 64 bit
double / floatSố thực dấu phẩy động
decimalSố thập phân độ chính xác cao (tiền tệ)
booltrue hoặc false
charMột ký tự Unicode
stringChuỗi bất biến
varTrình biên dịch tự suy ra kiểu
int?Kiểu giá trị có thể null

Biến

Thao tácCú pháp
Khai báo và khởi tạoint x = 5;
Suy luận kiểuvar name = "Ada";
Hằng sốconst double Pi = 3.14159;
Trường chỉ đọcreadonly int id;
Kiểu tham chiếu có thể nullstring? maybe = null;
Toán tử gộp nullvar y = maybe ?? "default";
Toán tử điều kiện nullint? len = text?.Length;

Luồng điều khiển

Câu lệnhCú pháp
If / elseif (x > 0) { ... } else { ... }
Câu lệnh switchswitch (n) { case 1: ...; break; default: ...; }
Biểu thức switchvar s = n switch { 1 => "one", _ => "other" };
Vòng lặp whilewhile (i < n) { ... }
Vòng lặp do-whiledo { ... } while (i < n);
Vòng lặp forfor (int i = 0; i < n; i++) { ... }
Vòng lặp foreachforeach (var item in list) { ... }
Break / continuebreak; thoát khỏi vòng lặp, continue; chuyển sang lần lặp tiếp theo

Phương thức

Thao tácCú pháp
Định nghĩa phương thứcint Add(int a, int b) { return a + b; }
Thân biểu thứcint Add(int a, int b) => a + b;
Không có giá trị trả vềvoid Greet() { ... }
Tham số tùy chọnint Pow(int b, int e = 2) { ... }
Đối số có tênPow(b: 2, e: 3);
Tham số outbool TryParse(string s, out int n) { ... }
Phương thức staticstatic int Square(int x) => x * x;
Biểu thức lambdaFunc<int, int> f = x => x * 2;

Lớp và OOP

Thao tácCú pháp
Định nghĩa lớpclass Dog { ... }
Auto propertypublic string Name { get; set; }
Property chỉ đọcpublic int Id { get; }
Hàm khởi tạopublic Dog(string name) { Name = name; }
Tạo đối tượngvar d = new Dog("Rex");
Kế thừaclass Puppy : Dog { ... }
Interfaceinterface IRunnable { void Run(); }
Ghi đè phương thứcpublic override void Speak() { ... }
Record (bất biến)record Point(int X, int Y);

Collection

Các collection generic từ System.Collections.Generic.

KiểuCông dụng và ví dụ
List<T>Mảng động: list.Add(1); list.Count;
Dictionary<K, V>Cặp khóa và giá trị: dict["a"] = 1; dict.ContainsKey("a");
HashSet<T>Các giá trị duy nhất: set.Add(5); set.Contains(5);
Queue<T>FIFO: q.Enqueue(x); q.Dequeue();
Stack<T>LIFO: s.Push(x); s.Pop();
Mảngint[] nums = { 1, 2, 3 };
Khởi tạo collectionvar l = new List<int> { 1, 2, 3 };
Duyệt qua dictionaryforeach (var kv in dict) { kv.Key; kv.Value; }

LINQ

Truy vấn collection một cách gọn gàng; từ System.Linq.

Thao tácCú pháp
Lọcnums.Where(n => n > 0)
Chiếu / ánh xạnums.Select(n => n * 2)
Sắp xếpnums.OrderBy(n => n) / OrderByDescending(...)
Phần tử khớp đầu tiênnums.First(n => n > 5) / FirstOrDefault(...)
Có bất kỳ / tất cảnums.Any(n => n < 0) / nums.All(n => n > 0)
Đếm số phần tử khớpnums.Count(n => n > 0)
Tổng hợpnums.Sum(), nums.Max(), nums.Average()
Nhóm theoitems.GroupBy(i => i.Category)
Chuyển thành danh sách hoặc mảng.ToList() / .ToArray()

Mẫu thường dùng (property, async)

MẫuCú pháp
Phương thức asyncasync Task<int> GetAsync() { ... }
Chờ một taskvar result = await GetAsync();
Try / catchtry { ... } catch (Exception e) { ... }
Finallyfinally { ... } luôn được chạy
Using (giải phóng tài nguyên)using var file = File.OpenRead(path);
Định dạng chuỗi$"Total: {amount:C}"
Lớp genericclass Box<T> { public T Value; }
Khớp mẫu (pattern matching)if (obj is Dog d) { d.Bark(); }

Cú pháp C#, các collection và truy vấn LINQ mà bạn cần nhiều nhất, gom trong một trang. Cheat sheet C# này là bảng tra cứu nhanh khi viết C#: kiểu dữ liệu, luồng điều khiển, lớp, các collection List/Dictionary, LINQ, cùng các mẫu property và async làm nên code .NET chuẩn mực.

Mọi thứ ở đây đều là C# chuẩn trên .NET và chạy được bằng dotnet CLI. Sao chép phần bạn cần, hoặc chạy thử bất kỳ đoạn code nào ngay trong playground C#, không cần cài SDK.

Câu hỏi thường gặp về cheat sheet C#

Cheat sheet C# này có miễn phí không?

Có. Cheat sheet C# này hoàn toàn miễn phí, không cần đăng ký. Lưu trang lại và quay lại bất cứ khi nào bạn cần tra cú pháp, một collection hay một phương thức LINQ.

Kiểu giá trị và kiểu tham chiếu trong C# khác nhau thế nào?
Kiểu giá trị (int, double, bool, struct, enum) chứa trực tiếp dữ liệu và được sao chép khi gán hoặc truyền vào phương thức, nên thay đổi bản sao không ảnh hưởng đến bản gốc. Kiểu tham chiếu (class, string, mảng, List<T>) chứa tham chiếu tới dữ liệu trên heap, nên hai biến có thể cùng trỏ tới một đối tượng và thay đổi qua biến này sẽ thấy được qua biến kia. string là kiểu tham chiếu nhưng hoạt động như một giá trị bất biến.
LINQ là gì và khi nào nên dùng?
LINQ (Language Integrated Query) là tập phương thức như Where, Select và OrderBy giúp bạn lọc, biến đổi và tổng hợp collection bằng các lời gọi nối chuỗi dễ đọc thay cho vòng lặp thủ công. Hãy dùng LINQ mỗi khi bạn định viết vòng lặp để tạo một danh sách đã lọc hoặc đã biến đổi: code ngắn gọn, và chỉ được tính khi bạn gọi ToList() hoặc duyệt qua kết quả.
Có thể luyện tập C# online không?
Có. Mở playground C# để chạy bất kỳ đoạn code nào trong cheat sheet này ngay trên trình duyệt, không cần cài SDK. Khi muốn học có lộ trình, khóa học C# tương tác miễn phí của Coddy đưa bạn đi từng bước từ biến và vòng lặp đến lớp, collection và LINQ. Muốn làm game bằng C#? Khóa học C# cho Unity dạy bạn viết script Unity qua các game 3D chạy ngay trên trình duyệt.
Cheat sheet này có phù hợp cho người mới bắt đầu không?

Có. Nội dung được sắp xếp từ những thành phần cơ bản hay dùng nhất (kiểu dữ liệu, luồng điều khiển, phương thức) đến phần nâng cao (LINQ, async, generic), nên bạn có thể dùng các phần đầu ngay từ ngày đầu tiên rồi dần làm chủ phần còn lại.

Hình minh họa các ngôn ngữ lập trình của Coddy

Học C# cùng Coddy

Bắt đầu