2010-01-20 79 views
0

我有以下確定對象的鑄造

RssFeedReader rss = (RssFeedReader)this.ParentToolPane.SelectedWebPart; 

我的問題的代碼只有在運行時才能知道,如果「this.ParentToolPane.SelectedWebPart」的類型是RssFeedReader或類型的「RssCountry」

我該如何檢查對象類型並將其轉換爲appropriatley?

非常感謝,

回答

4

你可以這樣做:

if (this.ParentToolPane.SelectedWebPart is RssFeedReader) 
    //... 

要檢查它是否是某種類型的。或者,您可以使用'as'將其用作類型,如果不是該類型,則它將爲空。

RssFeedReader reader = this.ParentToolPane.SelectedWebPart as RssFeedReader; 
if (reader != null) 
{ 
    //... 
} 
3

可以說

RssFeedReader rss; 
rss = this.ParentToolPane.SelectedWebPart as RssFeedReader; 
if(rss != null) { 
    // an RssFeedReader 
} 

RssCountry rc; 
rc = this.ParentToolPane.SelectedWebPart as RssCountry; 
if(rc != null) { 
    // an RssCountry 
} 

if(this.ParentToolPane.SelectedWebPart is RssFeedReader) { 
    // an RssFeedReader 
    RssFeedReader rss = (RssFeedReader)this.ParentToolPane.SelectedWebPart; 
} 

if(this.ParentToolPane.SelectedWebPart is RssCountry) { 
    // an RssCountry 
    RssCountry rc = (RssCountry)this.ParentToolPane.SelectedWebPart; 
} 

但是,被警告。幾乎任何時候,你在這種類型的基礎上的邏輯是一個壞的設計氣味!

+0

謝謝我決定創建一個單獨的課程 - 因爲它聞到不好 – nav 2010-01-20 15:39:37