爲了改進進一步的實現並提供一些指導方針並儘量保持項目內的通用性,我創建了一個接口,其中應包含一些方法用過的。然而,只有這個類的一個方法應該對調用該類的用戶可見,所以我希望它們是受保護的類。例如從類和接口或抽象類繼承其他類時隱藏方法
public class ClassThree
{
public ClassThree()
{
var classOne = new ClassOne();
class1.MethodOne();
}
}
儘管ClassOne有4個方法,但3種方法只用於一個公共類,因此是私有的或受保護的。這三種方法都需要使第四種方法起作用(在理想的情況下,其他開發人員將遵循相同的原則)。所以,我不希望看到以下彈出的智能感知:
class1.MethodTwo();
class1.MethodThree();
class1.MethodFour();
我知道一個可以隱式調用從一個接口,例如
IInterface.MethodTwo<Type,Type>(string name)
{
//Do stuff here
}
不過的方法,我想阻止所有的鑄造時在ClassOne中調用這些方法本身,因爲這只是我眼中的刺。我喜歡我的代碼清潔,這對我來說根本不乾淨。我想過一個抽象類,但是我的類是從另一個類繼承的。隨着接口我可以做
public ClassOne : ClassTwo, IInterface<Type1,Type2>
當我這樣做與抽象類,但Visual Studio說預計接口。任何見解都非常受歡迎和讚賞,因爲我希望通過使我的生活和開發人員的生活變得更加容易,這些開發人員必須使用我的代碼。
在此先感謝!
編輯:場景是可以有幾個類,如ClassOne基本上做同樣的事情,但他們使用不同的類型,因爲他們必須返回的對象具有不同的值。但是堆積到這些對象是多於或相同e.g少:
- 收集所有API數據
- 檢索列表導出到API和呼叫#3或#4根據類型。
- 導出類型1的API
- 導出類型2的API
的想法始終是相同的,但自然也不同的API將需要不同的變量。但爲了確保所有步驟都像之前一樣,我希望實現一個接口或其他東西,但步驟1,2和3應該是私有的或者受保護的,並且只有步驟2應該可供使用它的類使用。但是,如果我只將方法2放在界面中,我無法確定其他人會執行1,3 & 4.這就是這裏的目標:P。這雖然ClassOne也從另一個類繼承,而不僅僅是接口。
編輯2:我知道接口只提供公共方法,這就是爲什麼我正在尋找替代品,因此這個問題。我知道它有什麼問題,我只是不明白我能如何以我想要的方式獲得它。感謝迄今的回覆!
編輯3:界面目前看起來像這樣,我只是爲了舉例調整了變量名稱。
public interface IExport<in T, in TU>
{
void GetRequiredApiData();
bool MethodOne(List<Type> list);
bool ExportOne(T one);
bool ExportTwo(TU two);
bool ValidateExport();
}
這很難理解你在說什麼。你正在談論第一段中的界面,但不知怎的,它會變成班級中期的句子。這個類('ClassOne'我假設)有一些方法想要隱藏消費代碼。你能否詳細說明爲什麼讓這些會員私人或保護不起作用?另外,什麼是「ClassThree」?這是消費代碼嗎? –
增加了額外的解釋,希望現在更清楚! – Citroenfris
接口中的所有方法都是公共的,通過設計,您只能從1個類繼承數據(即使它是抽象的)。 希望這可以幫到你 – darkndream