我有
public static void SecureTcpRpc<InterfaceType>(string uri,
Action<InterfaceType> action)
where InterfaceType : class;
然后我在这里使用
private static AuthorizedActionResult
RunChannelAction<T>(IEnumerable<string> uris,
Func<T, AuthorizedActionResult> actionFunc)
where T : IPingable
{
WcfClient.SecureTcpRpc<T>....
编译器不喜欢我将T限制为IPing。我不明白为什么它反对。 IPingable是一种引用类型,因此它匹配SecureTpcRpc方法的约束。但是编译器说“T必须是引用类型”
答案 0 :(得分:5)
我认为你需要AuthorizedActionResult
函数的“class”约束才能使它工作。
where T : class, IPingable
答案 1 :(得分:1)
第二个应该是通用的吗?如果是接口类型,它应该是这样的:
private static AuthorizedActionResult RunChannelAction(
IEnumerable<string> uris,
Func<IPingable, AuthorizedActionResult> actionFunc)
{
WcfClient.SecureTcpRpc<IPingable>....