2011-10-31 49 views
1

有人可以糾正我的代碼嗎?我想創建一個接口對象,並使用它的方法,但林堅持這一代碼..如何正確使用C#界面?

Visual Studio的錯誤提示:未分配的局部變量「MyInterface的」

IBattleNetSettings MyInterface; 
     MyInterface.Username = "MyUsername"; 
     BattleNetClient cs = new BattleNetClient(MyInterface); 

順便說一句,使用,如果你想在接口這裏的代碼:​​

和BattleNetClient類:BattleNetClient < - 看看這個code.Its構造函數需要一個IBattleNetSettings接口的實例。

我只是想創建BattleNetClient類的實例,但是我stucked因爲它需要從IBattleNetSettings一個實例,我不知道該怎麼做。

如何創建BattleNetClient類的實例?

在此先感謝:)

回答

4

您不能創建接口的實例。您應該創建(或以其他方式獲得)實現該接口的類的實例:

IBattleNetSettings settings = new BattleNetSettings(); 

如果該項目不提供您可以使用,然後實現你可能要自己寫一個:

public class BattleNetSettings : IBattleNetSettings 
{ 
    public string Username { get; set; } 
    // etc... 
} 
+0

你們而言,我比較瞭解的,但問題是,我剛剛得到它,我已經從淨..我不是誰寫類別的1個下載一個DLL文件。我只是想在我的程序中實現它。 – user848682

+0

@ user848682:然後你可以自己實現它。您可以使用我在答案中顯示的代碼。 –

+0

問題是我不是創建dll文件的人..是否有任何其他方式來實現它?我只是想創建BattleNetSettings類的intance但問題是,它的構造函數需要IbattleNetSettings接口 – user848682

2

考慮分配給它嗎?

接口是隻是...的接口。你會想要使用具體的實現。

例如,您可能希望使用一類名爲BattleNetSettings它實現IBattleNetSettings,你可以使用:

IBattleNetSettings MyInterface = new BattleNetSettings(); 
MyInterface.Username = "MyUsername"; 
BattleNetClient cs = new BattleNetClient(MyInterface); 

然而,使用了名爲「MyInterface的」是非常混亂,我建議使用更適當的名字。 :)

+0

我試過代碼,但它給了我一個新的錯誤:類型或命名空間名稱「BattleNetSettings」找不到(是否缺少using指令或程序集引用?) – user848682

+0

@ user848682:我提供的類名是一個例子。有沒有特定的*實現*你想使用?如果是這樣,請使用它! – Arafangion

+0

@ user848682:如果沒有提供實現,則很可能希望自己編寫實現。 – Arafangion