如何调用这些接口方法呢?
How to call these interface methods?
只是想知道如何为我的学习目的调用它。我知道在不使用 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();
}
给出
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
请注意,如果您的 class
中有第三种方法
public void Display()
{
Console.WriteLine("Displaying 3 ");
}
这就叫它
t.Display(); // Displaying 3
只是想知道如何为我的学习目的调用它。我知道在不使用 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();
}
给出
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
请注意,如果您的 class
中有第三种方法public void Display()
{
Console.WriteLine("Displaying 3 ");
}
这就叫它
t.Display(); // Displaying 3