假设我在一个名为“接口”的项目中有一个这样的接口:
public interface TestInterface
{
string Operation();
}
和实现它的类。该类位于另一个项目“类”中:
public class TestClass : TestInterface
{
public TestClass() { }
public string Operation()
{
return "This is an Operation";
}
}
我的客户做了这样的事情(这又在另一个项目“客户”中):
class Program
{
static void Main(string[] args)
{
TestInterface i = new TestClass();
i.Operation();
}
}
我的问题与这一行有关:
TestInterface i = new TestClass();
通过添加这一行,我实际上被迫从我的“客户端”项目中添加对“接口”和“类”项目的引用。那么为什么要大惊小怪呢?我不能直接引用“类”而不保留“接口”吗?有没有办法仅通过接口访问方法(不引用实现类)?我在这里错过了什么吗?