C# Cơ bản .NET Core §1) Cài đặt, chương trình C# đầu tiên §2) Biến, kiểu dữ liệu và nhập/xuất §3) Toán tử số học và gán §4) So sánh, logic và lệnh if, switch §5) Vòng lặp for, while §6) Phương thức - Method §7) Phương thức - Delegate §8) Lớp - Class §9) Kiểu vô danh và dynamic §10) Biểu thức lambda §11) Event §12) Hàm hủy - Quá tải toán tử - thành viên tĩnh - indexer §13) Lớp lồng nhau - namespace §14) null và nullable §15) Mảng §16) Chuỗi ký tự §17) Tính kế thừa §18) Tính đa hình - abstract - interface §19) Struct và Enum §20) Ngoại lệ Exeption §21) IDisposable - using §22) File cơ bản §23) FileStream §24) Generic §25) Collection - List §26) SortedList §27) Queue / Stack §28) Linkedlist §29) Dictionary - HashSet §30) Phương thức mở rộng §31) ObservableCollection §32) LINQ §33) (Multithreading) async - bất đồng bộ §34) Type §35) Attribute Annotation §36) DI Dependency Injection §37) (Multithreading) Parallel §38) (Networking) HttpClient §39) (Networking) HttpMessageHandler §40) (Networking) HttpListener §41) (Networking) Tcp TcpListenerr/TcpClient §42) (ADO.NET) SqlConnection §43) (ADO.NET) SqlCommand §44) (EF Core) Tổng quan §45) (EF Core) Tạo Model §46) (EF Core) Fluent API §47) (EF Core) Query §48) (EF Core) Scaffold §49) (EF Core) Migration §50) (ASP.NET CORE) Hello World! §51) (ASP.NET CORE) Middleware §52) (ASP.NET CORE) Map - Request - Response §53) (ASP.NET CORE) IServiceCollection - MapWhen §54) (ASP.NET CORE) Session - ISession §55) (ASP.NET CORE) Configuration §56) (ASP.NET CORE MVC) Controller - View

Kiểu vô danh C#

Kiểu vô danh (Anonymous Type) - là kiểu không có tên. C# cho phép bạn tạo ra các đối tượng kiểu vô danh bằng từ khóa new, cú pháp cơ bản để tạo ra đối tượng có kiểu vô danh như sau

var obj = new {
    thuoctinh1 = giatri1,
    thuoctinh2 = giatri2
}

Ví dụ: tạo đối tượng có 3 thuộc tính

var myProfile = new {
    name  = "XuanThuLab",
    age   = 20,
    skill = "ABC"
};

Để truy cập thuộc tính của toán tử vẫn dùng ký hiệu . và tên thuộc tính.

Console.WriteLine(myProfile.name);

Khi có đối tượng kiểu vô danh, nếu dùng nó truyền như tham số cho các phương thức - coi nó như các object có thể gây lỗi khi buil ứng dụng - trình biên dịch kiểm tra và báo lỗi. Để giải quyết vấn đề này có thể dùng đến khai báo kiểu dynamic

Kiểu động - dynamic

Biến kiểu động - ngầm định - khai báo với từ khóa dynamic, thì kiểu thực sự của biến đó được xác định bằng đối tượng gán vào ở thời điểm chạy (khác với kiểu ngầm định var kiểu xác định ngay thời điểm biên dịch)

dynamic myvar;
Ví dụ khai báo phương thức có sử dụng tham số kiểu dynamic
static void TestFunc(dynamic dvar) {
    Console.WriteLine(dvar.abc); // ở thời điểm biên dịch - không biết dvar có thuộc tính abc hay không, nhưng nó vẫn biên dịch
}

Với phương thức trên, ở thời điểm chạy mà đối tượng ở tham số có thuộc tính abc thì sẽ không lỗi, nếu không có thuộc tính abc sẽ sinh ngoại lệ.

var bien = new {
    abc = 123,
    a = "fff"
};
TestFunc(bien);
Đăng ký theo dõi ủng hộ kênh