2011-10-31 48 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