interface是用来implement的,不是用来实例化的。
如果定义了一个public interface ISecurity { }那么你可以将一个类定义为该interface的实现
public class FormSecurity : ISecurity {}请注意,这时候这个类就不可以从一个父类继承了。这时候你可以实例化这个类。
public class MyClass
{
private FormSecurity mySecurity;
public MyClass
{
this.mySecurity = new FormSecurity();
}
}

解决方案 »

  1.   

    接口虽然不能实例化,但派生类有一个"向上转型"的概念。
    比如 IDictionary childs = new Hashtable();
      

  2.   

    接口是不能实例化的 可以用继承它的类来实力化
    不如 Itest 接口
    test:Itest 继承
    实例化的时候: Itest mytest=new test();
      

  3.   

    // 界面
    public interface ISecurity { }
    // 实现界面的类
    public class FormSecurity : ISecurity {}
    public class WindowsSecurity : ISecurity {}public class MyClass
    {
    public MyClass
    {
    }
    public void LogIn(string Username, string Password, string AuthType)
    {
    if (AuthType.Equals("Form"))
    {
    // 这里实例化
    FormSecurity fs = new FormSecurity(Username, Password)
    // 直接传参
    Authenticate(fs)
    }
    else
    {
    // 其他认证方式
    WindowsSecurity ws = new SqlSecurity(Username, Password)
    // 直接传参
    Authenticate(ws);
    }
    }
    private void Authenticate(ISecurity s)
    {
    }
    }
      

  4.   

    这里的方法Authentication跟你传递的具体类无关,只要是实现了这个指定界面的类都可以传递。这就好像用遥控器一样,不管里面的结构如何,只要控制面板一样,用起来就都没有问题。