我試圖找出解決這個問題的好方法。我有一個客戶類實現了ICustomer接口。這個接口有很多屬性:C#中的內部屬性設置器
public interface ICustomer
{
string FirstName {get; set;}
string LastName {get; set;}
}
我只希望某些類能夠設置這些屬性,但是,即項目中的那些類。所以我想關於做二傳手internal
:
public class Customer : ICustomer
{
string FirstName {get; internal set;}
string LastName {get; internal set;}
}
我想,以紀念然而界面二傳手內部,所以沒有機會實現人與ICustomer人大會以外的修改這些屬性。有沒有一個好的方法來做到這一點?
感謝您的協助。但是,如果我這樣做,而消費階層使用ICustomer,則無法進入設定者。 – larryq
@larryq這是整個觀點,因爲界面並沒有提交給setter。如果你想實現第二個內部接口,你可以添加setter。我經常有一系列的接口:這是一個真實的例子:'IDimensionedMap'只提交2D實體的維度;具有可讀屬性的IReadMap',只讀或計算映射的'IReadMap:IDimensionedMap',然後是'IWriteMap:IReadMap'。但這是一個複雜的可擴展實用程序類。 (如果你很好奇,這些是2d希爾伯特空間,不是字典) – SAJ14SAJ
@larryq雖然我不確定是否需要它,但我添加了一個替代實現,其中接口定義了一個內部set方法。 – Servy