不,您不能在C#中做到这一点-但通常,替代设计方法是使用委托。在您提供的示例中,Runnable
通常使用表示ThreadStart
,并且您可以使用匿名方法或lambda表达式:
ThreadStart start = () =>
{
// Do stuff here
};
或者,如果您只运行带有正确签名的方法,则可以使用方法组转换:
ThreadStart start = MethodToRunInThread;
Thread t = new Thread(MethodToRunInThread);
t.Start();
如果确实需要实现一个接口,则必须真正实现它(可能在私有嵌套类中)。但是,根据我的经验,在C#中这种情况并不十分常见-通常C#接口是那种自然会要求“真正”实现的类型,即使在Java中也是如此。