Tôi đang viết một đối tượng phải luôn có giá trị nhất định. Đáng chú ý nhất, nó phải luôn luôn có một giá trị cho tài sản Name
.Làm cách nào tôi có thể hủy khởi tạo đối tượng?
public class User
{
public string Name { get; set; }
public User(string name)
{
Name = name;
}
}
Bây giờ, có một vài quy tắc kinh doanh mà tôi cần triển khai trong lớp học này. Một trong số đó là thuộc tính Name
phải là một tên duy nhất. Vì vậy, tôi sẽ nghĩ rằng initializer cho đối tượng này sẽ trông giống như thế này:
public User(string name, IQueryable<User> allUsers)
{
var matches = allUsers.Where(q => q.Name == name).ToList();
if(matches.Any())
{
// abort object initialization
}
Name = name;
}
Nhưng tôi không chắc chắn làm thế nào tôi sẽ hủy bỏ việc khởi tạo đối tượng. Trong thực tế, là thậm chí có thể?
Có cách nào để hủy bỏ việc khởi tạo đối tượng (ví dụ: đặt đối tượng thành không) hoặc có cách nào tốt hơn để hoàn thành việc này không?
một lực lượng cách vũ phu, đặt tất cả các lĩnh vực để null, thêm các đối tượng với các lĩnh vực null, loại bỏ các đối tượng – RhysW
này có thể chỉ là mẫu mã nhưng trong trường hợp nó không phải là: Bạn có thể cung cấp một vị cho 'Bất kỳ ', vì vậy bạn không phải đi qua' Where'. –
@BrianRasmussen Cả hai đều có kết quả chính xác, vì vậy nó thực sự sở thích cá nhân mà bạn sử dụng. Ngược lại, lệnh gọi 'ToList' ngăn chặn ngắn mạch của' Any' không đánh giá toàn bộ truy vấn. – Servy