【发布时间】:2015-01-15 14:13:18
【问题描述】:
以下代码无法编译,我不明白为什么
namespace ImplicitConversion
{
struct Wrapper<T>
{
public static implicit operator Wrapper<T> (T input)
{
return new Wrapper<T> ();
}
}
interface IFoo
{
}
class Foo:IFoo
{
}
class MainClass
{
public static void Main (string[] args)
{
}
static Wrapper<IFoo> Test ()
{
IFoo foo = new Foo ();
return foo; // Cannot implicitly convert type 'ImplicitConversion.IFoo' to 'ImplicitConversion.Wrapper<ImplicitConversion.IFoo>' (CS0029) (ImplicitConversion)
}
}
}
为什么我不能使用隐式转换?
【问题讨论】:
-
这实际上与它是异步方法没有任何关系。无论是
Task<Wrapper<IFoo>>还是Wrapper<IFoo>,此转换都会失败 -
另外,看来 serdar 是对的,你不能从接口隐式转换:stackoverflow.com/a/143567/526704
-
@DLeh 你是对的。我已经编辑了问题
-
我也打算使用 dupehammer,但对此:stackoverflow.com/questions/1208796/…
标签: c# .net implicit-conversion