只是想知道如何为我的学习目的打电话。我知道当我不使用IIm或IIn.Display时通过对象创建来调用它(即只使用public void Display();)但是,我不知道如何调用它。
public interface IIn
{
void Display();
}
public interface IIM : IIn
{
void Display();
}
public class temp : IIM
{
void IIM.Display()
{
Console.WriteLine("Displaying 1");
}
void IIn.Display()
{
Console.WriteLine("Displaying 2 ");
}
static void Main()
{
temp t = new temp();
Console.ReadLine();
}
答案 0 :(得分:6)
鉴于
var t = new temp();
您只需要将t
转换为其中一个接口...在接口类型的变量中复制它就足够了:
IIM t1 = t;
IIn t2 = t;
t1.Display(); // Displaying 1
t2.Display(); // Displaying 2
或将其作为参数传递给方法:
static void MyShow(IIM t1, IIn t2)
{
t1.Display(); // Displaying 1
t2.Display(); // Displaying 2
}
MyShow(t, t);
或者你可以直接投射它并使用方法:
((IIM)t).Display(); // Displaying 1
((IIn)t).Display(); // Displaying 2
请注意,如果您的班级中有第三种方法
public void Display()
{
Console.WriteLine("Displaying 3 ");
}
这会称之为
t.Display(); // Displaying 3