如何通过 I3 界面访问 I1 和 I2 接口方法。我想在TestIt类中实现I3(公共类TestIt:I3 )。不想实现I1和I2(公共类TestIt:I1,I2 )。
我的代码如下......
using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;
/// <summary>
/// Summary description for TestIt
/// </summary>
public class TestIt:I3
{
public TestIt()
{
//
// TODO: Add constructor logic here
//
//TestItB tb = new TestItB();
}
public int abc()
{
return 10;
}
int I1.A1()
{
return 20;
}
void I2.A1()
{
int j = 0;
}
}
public interface I1
{
int A1();
}
public interface I2
{
void A1();
}
public interface I3 : I1, I2
{
}
我尝试按下面的方法调用A1方法......
I3 t = new TestIt();
int i = t.A1();
以上是抛出错误...
我不想创建对象... ...
I1 t = new TestIT();
or
I2 t = new TestIT();
答案 0 :(得分:2)
将对象强制转换为适当的接口类型:
int i = ((I1)t).A1();
您也可以使用as
运算符(t as I1).A1()
,尽管IMO投射可以更明确地显示正在发生的事情。