[英]C# in VS2005: determining what type an Object really is
在使用VS2005的C#中,如果我有一個類型為Object
的變量,可以通過如下所示將其分配給MyObjectType
對象:
MyObjectType myObj = GetMyObject();
Object obj = (Object)myObj;
有沒有辦法確定obj
實際上是MyObjectType
而不只是Object
?
絕對:
if (obj is MyObjectType)
{
...
}
或者,如果您想使用其中的某些成員:
MyObjectType mot = obj as MyObjectType;
if (mot != null)
{
...
}
請注意,即使obj
引用從MyObjectType
派生的對象,這些也將起作用。 如果只需要完全匹配,則應使用:
if (obj != null && obj.GetType() == typeof(MyObjectType))
...但是根據我的經驗,這是一個非常罕見的用例。
如果要檢查obj是否為MuObjectType,可以編寫
if( obj is MyObjectType)
如果obj實際上是MyObjectType,則返回true
,否則返回false
。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.