Đối với các hardcore C lập trình # ở đây, điều này có vẻ như một câu hỏi hoàn toàn ngu ngốc - Tuy nhiên, tôi chỉ đi qua một đoạn mã mẫu trong diễn đàn AWS SDK và được hoàn toàn sideswiped bởi nó:C# cú pháp đường - cách mới để thiết lập các thuộc tính đối tượng?
RunInstancesRequest runInstance = new RunInstancesRequest()
.WithMinCount(1)
.WithMaxCount(1)
.WithImageId(GetXMLElement("ami"))
.WithInstanceType("t1.micro");
Đây là rất gợi nhớ cú pháp cũ của VB6 With ... End With
, mà tôi đã than phiền về sự vắng mặt của C# - Tôi đã biên soạn nó trong dự án VS2008 của tôi và nó hoạt động một cách xử lý, tiết kiệm rất nhiều dòng riêng biệt tham chiếu các thuộc tính này. Tôi chắc chắn rằng tôi đã đọc các bài báo trong quá khứ giải thích tại sao VB6 kiểu With
không có trong C#, vì vậy câu hỏi của tôi là: có cú pháp này luôn luôn tồn tại trong ngôn ngữ, hoặc là nó một thay đổi .NET gần đây đã kích hoạt nó? Chúng ta có thể phủ tất cả các sự kiện đối tượng theo sau bởi các thay đổi thuộc tính trong cùng một đường không?
Vâng chắc chắn, bạn có thể thực hiện tất cả những phương pháp đó nếu bạn muốn. Nhưng tại sao không chỉ sử dụng cú pháp khởi tạo đối tượng? –
Câu trả lời tuyệt vời ở đây, nhưng tôi chỉ có thể chấp nhận một câu trả lời - vì vậy bây giờ, đó là câu nói cụ thể liên quan đến * Giao tiếp thông thạo *, vì ví dụ trong bài viết làm cho nó rất rõ ràng những gì đang diễn ra. Tôi cảm thấy hơi xấu hổ vì tôi không tự tạo liên kết trực quan, phát hiện ra rằng toàn bộ dòng có dạng 'A.B.C.D;', nhưng tôi chưa từng thấy kỹ thuật này trước đây. Một sợi dây khác vào cung! :) –