我正在使用大量可重用程序集的C#.NET解決方案。這三個是:將類型傳遞給未知的類庫通用方法 - 爲什麼它可以工作
- 一個WinForms組件
- 一個WebClient類庫
- 包含該數據模型類
我在類庫作爲這樣的通用方法的組件:
namespace Company.WebClient {
public class GetData<T>()
{
...
}
}
但是,當我從WinForms程序集內調用該方法時,我傳遞了一個Type th在類庫不會知道,因爲它包含在數據模型組件:
namespace Company.WinFormsApp {
public class App
{
public void Main()
{
Company.WebClient.GetData<TypeFromTheDataModel>();
}
}
}
出人意料的是,它似乎工作。但是它爲什麼起作用? webclient程序集沒有對數據模型程序集的硬編碼引用,所以我很驚訝它沒有報告「找不到類型」或某些此類錯誤。這是一種安全的工作方式,還是應該爲我的項目添加更多引用(即從類庫到數據模型)?
它不只是將'TypeFromTheDataModel'視爲'Object',因爲您使用的是非限制類型參數?這就是它在Java中的作用,至少是iirc。 – JAB 2012-07-06 12:44:40