4

私は持っています

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をIPingableに制限したことを好みません。なぜ反対するのかわかりません。IPingableは参照型であるため、SecureTpcRpcメソッドの制約と一致します。しかし、コンパイラは「Tは参照型でなければならない」と言っています

4

2 に答える 2

5

関数を機能させるには、関数に「クラス」制約が必要だと思いますAuthorizedActionResult

where T : class, IPingable
于 2012-04-29T22:22:35.270 に答える
1

2番目のものはジェネリックである必要がありますか?インターフェイスタイプの場合は、次のようになります。

private static AuthorizedActionResult RunChannelAction(
  IEnumerable<string> uris, 
  Func<IPingable, AuthorizedActionResult> actionFunc)
        {
                WcfClient.SecureTcpRpc<IPingable>....
于 2012-04-29T22:11:18.943 に答える