[英]Partial Interface in C#
C#允許部分接口嗎? 即,在ManagerFactory1.cs類中,我有
public partial interface IManagerFactory
{
// Get Methods
ITescoManager GetTescoManager();
ITescoManager GetTescoManager(INHibernateSession session);
}
在ManagerFactory.cs類中,我有:
public partial interface IManagerFactory
{
// Get Methods
IEmployeeManager GetEmployeeManager();
IEmployeeManager GetEmployeeManager(INHibernateSession session);
IProductManager GetProductManager();
IProductManager GetProductManager(INHibernateSession session);
IStoreManager GetStoreManager();
IStoreManager GetStoreManager(INHibernateSession session);
}
ManagerFactory和ManagerFactory1都位於同一個程序集中。
最簡單的方法就是嘗試:)
但是,是的,允許部分接口。
partial
修飾符的有效位置(使用C#3.0規范引用):
規范的10.2節包含了部分類型的大部分一般細節。
無效的地點:
MSDN上的部分類和方法(C#編程指南)
partial
修改所有部分類型接口定義,即相同類型的partial
interface
之前。 在涉及代碼生成時,主要使用部分接口。 例如,當生成接口的一部分而另一部分是用戶編寫的時。
確實如此,但一個重要的問題是什么?
部分類是存在的,因此您可以擴展自動生成的代碼。 VS可以生成表單文件或代碼隱藏,或者Linq到SQL訪問器,您可以使用部分擴展它。
我會避免使用partials來分割類(或者在這種情況下是接口),因為它通常會產生比它值得更多的混亂。
在這種情況下,我會調查為什么這需要跨越多個文件 - 工廠模式接口可以使跟蹤代碼更復雜,但在這里您將通過多個文件進行跟蹤。
是的, 確實如此 。
在使界面偏向之前請三思而后行。 也許最好把它分成兩個itnerfaces?
保持您的界面小而專注。 部分是代碼氣味。
尼斯。
我同意這可能是一種氣味,但我仍然可以想到這樣做的一個原因。
我目前正在為WPF和Silverlight開發應用程序MVVM框架。 我遇到的是WPF和Silverlight是如此不同,而不是在整個代碼中使用定義,部分接口/類實際上可以分離兩個框架之間的差異,並仍然保持代碼清潔和幾乎單一來源。
是的,它確實。 是否在同一名稱空間中定義了部分接口?
請參閱說明可以在類,結構或接口上使用的文檔
簡短:是的!
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.