Nếu bạn định nghĩa một giao diện công cộng với một tài sản trong lắp ráp A, sau đó bạn có thể sử dụng giao diện này trong lắp ráp B.
Bây giờ, bạn có thể thay đổi thực hiện của tài sản (có thể lấy giá trị từ một cơ sở dữ liệu thay vì lưu trữ nó trong một lĩnh vực). Sau đó, bạn có thể biên dịch lại assembly A, và thay thế một assembly cũ hơn. Hội B sẽ thực hiện tốt vì giao diện sẽ không thay đổi.
Tuy nhiên, nếu ban đầu bạn bắt đầu với trường công cộng và quyết định điều này không phù hợp và muốn thay đổi triển khai và thực hiện điều đó, bạn cần chuyển đổi nó thành thuộc tính thì điều này có nghĩa là bạn ' d phải thay đổi giao diện công khai của assembly A. Bất kỳ máy khách nào của giao diện đó (bao gồm cả assembly B) cũng sẽ phải được biên dịch lại và thay thế để có thể làm việc với giao diện mới này.
Vì vậy, bạn nên bắt đầu với một sản phẩm ngay từ đầu. Điều này gói gọn việc thực hiện thuộc tính, để bạn tự do thay đổi nó trong tương lai mà không phải lo lắng những gì khách hàng (bao gồm cả assembly B) đã được đưa ra trên thế giới bằng cách sử dụng assembly A. Bởi vì, nếu có bất kỳ khách hàng nào trên thế giới sử dụng assembly A, việc thay đổi giao diện sẽ phá vỡ tất cả các máy khách. Nếu chúng được sử dụng bởi một nhóm khác trong công ty của bạn, hoặc một công ty khác, thì họ sẽ không vui nếu bạn phá vỡ hội đồng của họ bằng cách thay đổi giao diện của bạn!
Nguồn
2008-10-03 18:26:02
Chỉnh sửa nhẹ (mặc dù tôi đồng ý với lực đẩy chung!) - các thuộc tính được tự động triển khai là một phần của C# 3.0, chứ không phải .NET 3.0. Điều đáng nói là sự khác biệt giữa ngôn ngữ và khung công tác. –
Vâng. Là một người dùng VB.net, tôi rất buồn vì chúng tôi không nhận được những món quà như thế này. –
Tôi biết đây là một chủ đề cũ, nhưng tôi muốn thêm điều này cho người dùng đến từ các công cụ tìm kiếm (như tôi): Kể từ .NET 4.0, VB.NET cũng hỗ trợ các thuộc tính tự động triển khai: http: // msdn.microsoft.com/en-us/library/dd293589.aspx – Nullius