2009-02-26 27 views
179

我有一個通用方法,它有兩個通用參數。我試圖編譯下面的代碼,但它不起作用。它是一個.NET限制嗎?是否有可能對不同的參數有多個約束?具有多種約束的通用方法

public TResponse Call<TResponse, TRequest>(TRequest request) 
    where TRequest : MyClass, TResponse : MyOtherClass 

回答

280

這是可能的,你剛剛得到的語法有點不對。對於每個約束,您需要一個where,而不是用逗號分隔它們:

public TResponse Call<TResponse, TRequest>(TRequest request) 
    where TRequest : MyClass 
    where TResponse : MyOtherClass