Khi thiết lập một số thuộc tính kiểu tham chiếu cho dự án tôi đang làm việc, tôi đã xem xét một số thuộc tính cần thiết để được sử dụng đúng cách và không bao giờ được rỗng. Tôi đã nhìn thấy một vài cách để xử lý điều này và không thể thực sự xác định xem có bất kỳ hạn chế lớn nào đối với bất kỳ cách chính nào mà tôi đã thấy để xử lý việc này hay không. Tôi muốn nhận được ý kiến của cộng đồng về cách tốt nhất để xử lý vấn đề này và những hạn chế tiềm năng đối với từng phương pháp có thể là gì.Xử lý C# Các thuộc tính không được rỗng
Cho một lớp đơn giản, tôi đã nhìn thấy một số cách để xử lý đảm bảo một tài sản không bao giờ có một phiên bản rỗng của lớp này trong một tài sản
public class MyClass
{
//Some collection of code
}
Lựa chọn 1 - Khởi tạo các cửa hàng ủng hộ
public class OtherClass1
{
private MyClass _mC = new MyClass();
public MyClass MC
{
get { return _mC; }
set { _mC = value; }
}
}
Lựa chọn 2 - khởi tạo tài sản trong các nhà xây dựng
public class OtherClass2
{
public MyClass MC { get; set; }
public OtherClass2()
{
MC = new MyClass();
}
}
Opti vào ngày 3 - Bắt đầu xử lý khi cần thiết trong Getter
public class OtherClass3
{
private MyClass _mC;
public MyClass MC
{
get
{
if (_mC == null)
_mC = new MyClass();
return _mC;
}
set { _mC = value; }
}
}
Tôi chắc chắn có nhiều cách khác, nhưng đây là những cách mà tôi nghĩ đến. Tôi chủ yếu là cố gắng để xác định xem có một thực hành tốt nhất được thành lập về điều này hoặc nếu có một mối quan tâm cụ thể với bất kỳ ở trên.
Chúc mừng,
Steve
Dưới đây là một cú pháp "get" nhỏ gọn hơn cho tùy chọn 3: 'get {return _mC ?? (_mC = new MyClass); } ' – Mas