【发布时间】:2014-02-20 09:03:09
【问题描述】:
从一个 url 我看到人们可以这样实例化界面
class Program
{
static void Main(string[] args)
{
var foo = new IFoo(1);
foo.Do();
}
}
[
ComImport,
Guid("C906C002-B214-40d7-8941-F223868B39A5"),
CoClass(typeof(FooImpl))
]
public interface IFoo
{
void Do();
}
public class FooImpl : IFoo
{
private readonly int i;
public FooImpl(int i)
{
this.i = i;
}
public void Do()
{
Console.WriteLine(i);
}
}
怎么可能写成这样var foo = new IFoo(1); 寻求指导。谢谢
【问题讨论】:
-
不是。我建议停止询问所有这些接口问题,并阅读一些关于 C# 中的接口和多态性的材料。
-
@Samuel 它确实有效。
-
即使可能,这只会让整个
interface的想法变得毫无用处,最大的问题是:你为什么曾经想要这样做? -
@dcastro 这对我来说确实是新的。托马斯请接受我对第一句话的道歉。我今天学到了一些新东西。除了 COM 特定属性之外,这不是处理接口时的常用方法。而且我仍然建议专注于基本接口概念的介绍。