私有訪問修飾符我已經和界面如下:解決方法來強制實現的接口屬性
public interface IData
{
String Name { get; set; }
}
並有2類,實現它:
public class Data1 : IData
{
public String Name { get; set; }
}
public class Data2 : IData
{
public String Name { get; set; }
}
我需要防止獲得的名稱一個Data2
實例。編譯器不允許以下所有形式:
internal String Name { get; set; }
private String Name { get; set; }
public String Name { private get; set; }
我確實理解爲什麼這不是明確可能的邏輯原因。屬性將使用對實現的訪問修飾符沒有任何線索的接口進行訪問,如果無法找到它,將會失敗。
我的使用情況是,無論Data1
和Data2
情況下應該能夠使用方法,其中一個IData
參數用於(有些地方沒有用的Name
存在的方法),但Data2
是敏感的,不應該直接訪問。因此我正在尋找解決方法。
可以明確地實現接口,這意味着你無法通過的情況下訪問該界面件'Data2'(你必須強制轉換爲'IData'),但由於接口是契約,它們上的所有方法在類上實現時都必須是公共的。在明確實現時不能使用訪問修飾符,但對接口類型進行強制轉換會使它們可訪問(就好像它們是公共的) – Charleh