【发布时间】:2016-02-29 23:30:24
【问题描述】:
给定一个简单的界面
public interface IIdTracker
{
int Id { get; }
}
我有两个实现它的类
public class human : IIdTracker
{
public int Id { return 0; }
}
public class robot : IIdTracker
{
public int Id { return 1; }
}
如何在不知道谁或什么正在实施 IIdTracker 的情况下实例化作为 IIdTracker 传递的任何类?
public void TrackId(IIdTracker idt)
{
// this is the code I am not sure of
var being = new idt.GetType();
}
【问题讨论】:
-
您需要
IIdTracker的新实例吗?您已经在idt中拥有一个实例。 -
是的,我想要单独的 IIdTracker,但我想要传入的类型。
-
您也许可以使用反射(或通过新的通用约束)创建一个新实例,但您希望它返回相同的 Id 值吗?
标签: c# dynamic interface instantiation typeof