1
我在我的應用程序中使用silverlight 4.0。我在我的基類的方法,下面提到Silverlight 4.0協變的替代方案4.0 IEnumerable <T>
class BaseClass
{
protected CustomRequest GetCustomRequest(IEnumerable<IRequestType> types)
{
//Some code here...
}
}
在我的派生類時,我把這種方法就像下面我在這裏,在調用語句requestTypes的類型是得到錯誤
IEnumerable<RequestType> requestTypes = CodeToGetThis();
GetCustomRequest(requestTypes)
注衍生類型的IRequestType的枚舉。
由於在c#4.0中引入了協方差,這在桌面應用程序中效果很好。但對於Silverlight 4.0來說,它似乎並沒有爲IEnumerable接口完成。
那麼,我應該在我的silverlight應用程序中爲此使用什麼最佳替代方法?
我在某處讀到它可以使用方法重載完成,但不知道如何執行此操作。
UPDATE: 一件事,我在這個問題的第一稿錯過的是,我將有很多派生類型IRequestType的,因此craeating每個派生類型重載的方法將是對我來說是困難的。
謝謝。我試過這個,這個工程。 您認爲這比重載更好嗎? – Maheep 2011-12-20 13:18:21
這取決於,無論如何,您需要在重載的方法中執行此操作。如果重載使得你的代碼更加清晰,並且你有很多調用這個方法的實例,那麼就執行它,如果它是一個或兩個,那麼它可能會被殺死。 – 2011-12-20 13:27:50