我目前正在使用C++和.NET 1.1(不要問...),我想檢查一個對象是否是CheckBox。如何將GetType()用於CheckBox?
GetType似乎是一個明顯的選擇,但由於某種原因,我無法讓它像我想要的那樣工作。在CheckBox的一個實例上使用GetType()
可以正常工作,但嘗試使用Type::GetType("System.Windows.Forms.CheckBox")
則不行。
儘管應該(至少在我的腦海裏)應該輸入GetType(temp)
的完美格式化字符串,下面的代碼將在第二行引發異常。如果我將temp
替換爲例如"System.Int32"
,它也可以正常工作。
String* temp = (this->checkBox1->GetType())->ToString();
temp = (System::Type::GetType(temp))->ToString();
這是爲什麼? =)
我可以想象幾種不同的方法可以解決這個問題,但這只是讓我誤以爲我無法按我認爲應該的方式工作。
我會承認我不知道這意味着什麼,但它像一個魅力。 =) – 2011-05-19 16:05:02
@Jon,'__typeof'運算符將爲給定的命名值返回一個'Type'對象。 'Type'的實例可以直接比較,所以'GetType()== __typeof'實際上是要求「checkBox1的運行時類型是'CheckBox'類型嗎? – JaredPar 2011-05-19 16:10:32
是的,我明白代碼的作用,我只是不明白爲什麼它需要這樣,但我猜我應該閱讀一下託管擴展? =) – 2011-05-19 16:14:54