Các chức năng hay trong lập trình c# từ phiên bản 6 đến 9 mà bạn nên biết Bạn đang học lập trình c# thì nên biết những đặc điểm hay trong các phiên bản của ngôn ngữ c#. Điều đó sẽ giúp bạn lập trình c# được nhanh chóng, hiệu quả qua những ví dụ dưới đây. Trong bài viết này, Stanford sẽ chia sẻ cho các bạn học lập trình c# những chức năng hay trong các phiên bản của ngôn ngữ c# từ phiên bản 6 đến phiên bản 9 qua những ví dụ minh họa cụ thể. Để hiểu rõ các bạn có thể sử dụng công cụ lập trình Visual Studio để thực hành theo nhé. Các tính năng mới trong lập trình c# 6 C# 6 đã mang đến nhiều tính năng mới giúp cải thiện khả năng sử dụng và hiệu suất của ngôn ngữ. Dưới đây là một số tính năng nổi bật cùng với ví dụ chi tiết: 1. Null-Conditional Operator: Giúp kiểm tra null một cách ngắn gọn hơn. Ví dụ: string message = null; int? length = message?.Length; // length sẽ là null nếu message là null 2. Auto-Property Initializers: Cho phép khởi tạo giá trị mặc định cho thuộc tính tự động. Ví dụ: public class Person { public string Name { get; set; } = "Unknown"; } 3. Expression-Bodied Members: Giúp viết các phương thức và thuộc tính ngắn gọn hơn. Ví dụ: public class Person { public string Name { get; set; } public string GetName() => Name; } 4. String Interpolation: Giúp nối chuỗi một cách dễ dàng và trực quan hơn. Ví dụ: string name = "World"; string greeting = $"Hello, {name}!"; 5. Using Static: Cho phép sử dụng các phương thức tĩnh mà không cần chỉ định tên lớp. Ví dụ: using static System.Console; WriteLine("Hello, World!"); 6. Nameof Expressions: Giúp lấy tên của biến, thuộc tính hoặc phương thức dưới dạng chuỗi. Ví dụ: public void PrintName(string name) { if (name == null) throw new ArgumentNullException(nameof(name)); } 7. Exception Filters: Cho phép lọc ngoại lệ dựa trên điều kiện. Ví dụ: try { // Code có thể gây ra ngoại lệ } catch (Exception ex) when (ex.Message.Contains("specific error")) { // Xử lý ngoại lệ cụ thể } Các tính năng mới trong lập trình c# 7 C# 7 đã mang đến nhiều tính năng mới giúp cải thiện khả năng sử dụng và hiệu suất của ngôn ngữ. Dưới đây là một số tính năng nổi bật cùng với ví dụ chi tiết: 1. Tuples: Cho phép trả về nhiều giá trị từ một phương thức. Ví dụ: public (int, string) GetPerson() { return (1, "John"); } var person = GetPerson(); Console.WriteLine($"ID: {person.Item1}, Name: {person.Item2}"); 2. Pattern Matching: Cải thiện khả năng khớp mẫu, giúp mã nguồn dễ đọc hơn. Ví dụ: public (int, string) GetPerson() { return (1, "John"); } var person = GetPerson(); Console.WriteLine($"ID: {person.Item1}, Name: {person.Item2}"); public string GetShapeName(object shape) => shape switch { Circle c => "Circle", Rectangle r => "Rectangle", _ => "Unknown" }; 3. Out Variables: Cho phép khai báo biến out trực tiếp trong lời gọi phương thức. Ví dụ: if (int.TryParse("123", out int result)) { Console.WriteLine($"Parsed number: {result}"); } 4. Local Functions: Cho phép định nghĩa các hàm cục bộ bên trong một phương thức. Ví dụ: public void ProcessData() { void Log(string message) => Console.WriteLine(message); Log("Processing data..."); } 5. Ref Returns and Locals: Cho phép trả về và lưu trữ tham chiếu đến biến. Ví dụ: public ref int Find(int[] numbers, int value) { for (int i = 0; i < numbers.Length; i++) { if (numbers[i] == value) return ref numbers[i]; } throw new IndexOutOfRangeException(); } Các tính năng mới trong lập trình c# 8 C# 8 đã giới thiệu nhiều tính năng mới nhằm cải thiện khả năng sử dụng, tính dễ đọc và an toàn của ngôn ngữ. Dưới đây là một số tính năng nổi bật cùng với ví dụ chi tiết: 1. Readonly Struct Members: Readonly struct giúp tạo ra các cấu trúc không thể thay đổi. Ví dụ: public readonly struct Rectangle { public readonly double Height { get; } public readonly double Width { get; } public double Area => Height * Width; public Rectangle(double height, double width) { Height = height; Width = width; } public override string ToString() => $"Area: {Area}"; } 2. Default Interface Methods: Cho phép định nghĩa các phương thức mặc định trong interface. Ví dụ: public interface ILogger { void Log(string message); void LogError(string message) => Log($"Error: {message}"); } 3. Pattern Matching Enhancements: Cải tiến khả năng khớp mẫu, bao gồm switch expressions. Ví dụ: public static string GetDescription(object obj) => obj switch { int i => $"Integer: {i}", string s => $"String: {s}", _ => "Unknown type" }; 4. Using Declarations: Giúp quản lý tài nguyên dễ dàng hơn bằng cách khai báo using ngay tại nơi khai báo biến. Ví dụ: using var file = new StreamReader("file.txt"); string content = file.ReadToEnd(); 5. Asynchronous Streams: Hỗ trợ xử lý luồng dữ liệu không đồng bộ. Ví dụ: public async IAsyncEnumerable<int> GetNumbersAsync() { for (int i = 0; i < 10; i++) { await Task.Delay(1000); yield return i; } } 6. Indices and Ranges: Cho phép truy cập phần tử trong mảng hoặc chuỗi bằng chỉ số và phạm vi. Ví dụ: var array = new int[] { 1, 2, 3, 4, 5 }; var subArray = array[1..3]; // { 2, 3 } Các tính năng mới trong lập trình c# 9 C# 9 đã mang đến nhiều tính năng mới giúp cải thiện khả năng sử dụng và hiệu suất của ngôn ngữ. Dưới đây là một số tính năng nổi bật cùng với ví dụ chi tiết: 1. Records: Records là một loại tham chiếu đặc biệt giúp tạo ra các đối tượng bất biến. Ví dụ: public record Person(string FirstName, string LastName); var person = new Person("John", "Doe"); 2. Init-only Setters: Cho phép thiết lập giá trị chỉ một lần khi khởi tạo đối tượng. Ví dụ: public class Car { public string Make { get; init; } public string Model { get; init; } } var car = new Car { Make = "Toyota", Model = "Corolla" }; 3. Top-level Statements: Giúp viết các chương trình đơn giản mà không cần khai báo lớp hoặc phương thức chính. Ví dụ: using System; Console.WriteLine("Hello, World!"); 4. Pattern Matching Enhancements: Cải tiến khả năng khớp mẫu, bao gồm các mẫu mới như and, or, và not. Ví dụ: public static string Classify(object obj) => obj switch { int i when i > 0 => "Positive integer", int i when i < 0 => "Negative integer", string s => "String", _ => "Unknown" }; 5. With Expressions: Cho phép tạo ra các bản sao của đối tượng với một số thuộc tính được thay đổi. Ví dụ: public readonly struct Rectangle { public readonly double Height { get; } public readonly double Width { get; } public double Area => Height * Width; public Rectangle(double height, double width) { Height = height; Width = width; } public override string ToString() => $"Area: {Area}"; } var person1 = new Person("John", "Doe"); var person2 = person1 with { LastName = "Smith" }; 6. Covariant Return Types: Cho phép phương thức ghi đè trả về kiểu con của kiểu trả về của phương thức cơ sở. Ví dụ: public class Animal { public virtual Animal GetAnimal() => new Animal(); } public class Dog : Animal { public override Dog GetAnimal() => new Dog(); } 7. Target-typed New Expressions: Giúp giảm bớt sự lặp lại khi khởi tạo đối tượng. Ví dụ: List<int> numbers = new(); Như vậy trong bài viết này, Stanford đã chia sẻ cho các bạn học lập trình c# những tính năng mới hay trong lập trình c# từ phiên bản 6 đến bản 9. Những tính năng này giúp lập trình viên viết mã hiệu quả và dễ bảo trì hơn. Do vậy bạn hãy thực hành những tính năng hay này qua những ví dụ ở trên cũng như áp dụng vào dự án lập trình c# thực tế của mình nhé. Bên cạnh đó bạn có thể bắt đầu ngay con đường chinh phục lập trình c# của mình dưới sự hướng dẫn của chuyên gia giàu kinh nghiệm Stanford bằng việc đăng ký tham gia khoá lập trình c# tại đây: http://bit.ly/2SLPYFF. Hoặc gọi ngay cho Stanford theo hotline: 0963.723.236 - 0866.586.366 để được gọi lại tư vấn trực tiếp nhé. ==========🎬 🎬 🎬========== ☎️STANFORD – ĐÀO TẠO VÀ PHÁT TRIỂN CÔNG NGHỆ Hotline: 0963 723 236 - 0866 586 366 Website: https://stanford.com.vn Facebook: https://www.facebook.com/Stanford.com.vn Youtube: http://bit.ly/2TkKT7I Tags: học c#, chức năng c# 6, chức năng c# 8