以下是我正在做的事情的一个简单示例。基本上,我有多个接口可以由1个类或单独的类实现,因此我将每个接口存储在应用程序中。我唯一的问题是变量myInterface,yourInterface和ourInterface。 他们是引用同一个对象还是有3个不同的对象?
interface IMyInterface
{
void MyFunction();
}
interface IYourInterface()
{
void YourFunction();
}
interface IOurInterface()
{
void OurFunction();
}
public class MainImplementation : IMyInterface, IYourInterface, IOurInterface
{
public void MyFunction() { }
public void YourFunction() { }
public void OurFunction() { }
}
private IMyInterface myInterface;
private IYourInterface yourInterface;
private IOurInterface ourInterface;
static void Main(string[] args)
{
myInterface = new MainImplementation() as IMyInterface;
yourInterface = myInterface as IYourInterface;
ourInterface = myInterface as IOurInterface;
}
奖励:有更好的方法吗?
答案 0 :(得分:5)
他们都引用同一个对象。所以以下列形式对它们进行更改:
ourInterface.X = ...
将反映在“所有观点”中。
有效地你正在使用你的演员(我认为你的意思是你的最后一个'作为IOurInterface')给出了不同的数据“视图”。在这种情况下,每个接口都会打开一个函数。
答案 1 :(得分:3)
他们引用同一个实例。 只有一个实例。
答案 2 :(得分:2)
1 new = 1个对象。它们都引用相同的实例。
答案 3 :(得分:0)
他们引用同一个对象。将对象转换为另一个对象只会告诉编译器,当在此对象上调用方法时,请使用此类中定义的方法而不是另一个方法。