我想要做這樣的事情在C#中的以下內容:如何測試變量是否是C#中的變量類型?
public bool ValidType(Type type)
{
return _someVar is type;
}
似乎C#並不支持,雖然這句法; 「is」右邊的項目似乎必須是絕對類型名稱,而不是對類型的引用。
我發現下面的代碼似乎工作:
return _someVar.GetType().IsInstanceOfType(type) ||
_someVar.GetType().IsSubclassOf(type) ||
_SomeVar.GetType().IsAssignableFrom(type);
我不明白是什麼IsAssignableFrom
做,除了它似乎需要一些類型比較爲IsInstanceOfType
和IsSubclassOf
似乎並不匹配所有情況都適當。
這真的是最好的方式來測試變量是一種類型,由另一個變量引用,還是有一個簡單的語法,我錯過了?
總是有'typeof'運算符和'as'關鍵字 –
感謝編輯Tim :) –
@ Dan-o,「as」與「is」有同樣的問題,因爲它只能用於與類型名稱。 typeof()將不會顯示_someVar是否是派生類型的實例。 –