[英]Cast Class<object> to Class<T>
我們有一個名為Context<T> where T : class
的通用類Context<T> where T : class
,並創建另一個類Message
與前一個類一起使用作為Context<Message>
。 一般來說,我們想知道是否有辦法將Context<object>
轉換回Context<Message>
。 我們可以檢查該對象是否為 Message 類型,但執行Context<Message> context = (Context<Message>) otherContext;
其中 otherContext 是Context<object>
這在某種程度上可能嗎?
如果你更喜歡演員,試試這個:
class YourClass<T> where T : class
{
public static implicit operator YourClass<T>(YourClass<object> instance)
{
// Create YourClass<T> from YourClass<object>
// e.g. return new YourClass<T>(...)
}
}
var obj = new YourClass<object>();
YourClass<Message> msg = obj;
否則,您可以創建一個構造函數:
class YourClass<T> where T : class
{
public YourClass(YourClass<object> obj)
{
}
}
或者你可以兩者兼得。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.