Toán tử hợp nhất Null (??)
Cá nhân, tôi không thấy bất kỳ nhược điểm nào khi sử dụng toán tử này. Hãy xem xét ba mẫu mã sau đây, từ các toán tử mới 'dễ' đến 'phức tạp'.
Không có phép thuật:
bool isNameSet = false;
string name;
if ( isNameSet )
{
Console.WriteLine( name );
}
else
{
Console.WriteLine( "No name set." );
}
Toán tử ternary:
bool isNameSet = false;
string name;
Console.WriteLine( isNameSet ? name : "No name set." );
Không hợp nhất:
string name = null;
Console.WriteLine( name ?? "No name set." );
Lý do các toán tử này được phát minh là vì chúng đại diện cho các hoạt động lập trình rất phổ biến . Không muốn sử dụng chúng bởi vì bạn không quen với chúng chỉ là bướng bỉnh . Ngôn ngữ phát triển, tính năng phát triển, học cách sử dụng chúng!
từ khóa var
Tôi có một ý kiến hơi khác về từ khóa var. Loại biến thường cung cấp thêm thông tin về mã của bạn. Tôi thấy việc ẩn kiểu bằng cách sử dụng từ khóa var đôi khi làm cho mã ít đọc hơn. Bạn biết ít hơn những gì mong đợi mà không cần sử dụng hoàn thành tự động hoặc di chuột qua các định danh để xem chúng thực sự là gì. Theo tôi, điều này dẫn đến mã chậm hơn để đọc / ghi.
Tôi sử dụng từ khóa khi tôi thấy rằng loại không cung cấp thêm thông tin.
- Chủ yếu trong các vòng lặp foreach , mà tôi đã học được từ Resharper vì nó là một thiết lập ở đó. Hầu hết thời gian, bạn biết loại bộ sưu tập bạn đang đi qua, vì vậy bạn biết bạn đang mong đợi các mục từ trong bộ sưu tập đó.
- Linq truy vấn . Kết quả của các truy vấn linq thường là các loại chung rất phức tạp. Hiển thị loại này có hại nhiều hơn tốt.
- Các kiểu chữ dài được khởi tạo đơn giản với hàm tạo của chúng. Bạn đã có thể biết loại này là gì bằng cách nhìn vào hàm tạo.
Để làm ví dụ cho tuyên bố cuối cùng:
ThisIsSomeSpecializedTypeRightHere duplication =
new ThisIsSomeSpecializedTypeRightHere();
var justAsReadable =
new ThisIsSomeSpecializedTypeRightHere(); // Less duplication.
// But I still prefer the following ...
int number = 9;
SomeCreatedType foo = Factory.CreateSomeType();
??
toán tử hợp nhất null sau khi được giải thích, thì họ không được phép gần mã sản xuất.