我有一個接口如下:「使用通用型.... <T>要求1個類型參數和通用多個約束,並使用任一
public interface ITestCase<T> where T : HtmlControl
{
IEnumerable<T> Execute(Manager manager);
}
HTMLLoader對象是從第三方組件的基類
我有這個接口的兩個實現。
其中之一就是返回null(由我指定),直到我指甲所需的邏輯(不是一件難事)。
問題是,我把從我的窗體的代碼隱藏這個第二個實施:
var LoginJuniper = new Login<ArtOfTest.WebAii.Controls.HtmlControls.HtmlDiv>();
LoginProcedure.Login(textBox1.Text, new Test1());
的登錄類,以及所有其他類,採取同樣的類型約束的參數(其中T是HTMLControl時,從所有的人第三方API)。
另外,我遇到的另一個問題是當我使用多個類型的約束;是否有可能說T可以是這些約束條件中的一個或多個?例如。如果我有:
<T> where T : HtmlControl, IElement
我可以傳入任何類型的可能是IElement而不是HtmlControl的實現,反之亦然?僅通過1接口。這將非常有用,因爲我想將更多類型傳遞給泛型類型約束,因爲我從接口派生的接口和測試用例可以測試的不僅僅是HtmlControls類(也可以測試IElements實現,就像在第三方API中一樣允許我獲取屏幕截圖,並且我想測試這些屏幕截圖(獲取像素,聲明顏色是正確的))。
感謝
你可以發佈一個單一的,完整的程序來演示問題嗎? – 2009-10-14 10:01:23
這個問題中沒有正確的詳細信息。嘗試專注於單個主要問題,如果稍後需要,可以將其他問題留給另一個問題。向我們展示使用ITestCase的類以及對「執行」的調用。 –
AnthonyWJones
2009-10-14 10:16:22
我將在一個單獨的線程中重新發布主要問題。謝謝。 – csharpdev 2009-10-14 10:52:16