我有以下代码
RssFeedReader rss = (RssFeedReader)this.ParentToolPane.SelectedWebPart;
我的问题仅在运行时我是否知道'this.ParentToolPane.SelectedWebPart'是否为RssFeedReader类型或类型为'RssCountry'
我如何检查对象类型并将其投射到appropriatley?
非常感谢,
答案 0 :(得分:4)
你可以这样做:
if (this.ParentToolPane.SelectedWebPart is RssFeedReader)
//...
检查它是否属于某种类型。或者,您可以使用'as'将其用作类型,如果它不是该类型,则它将为null。
RssFeedReader reader = this.ParentToolPane.SelectedWebPart as RssFeedReader;
if (reader != null)
{
//...
}
答案 1 :(得分: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;
}
但是,请注意。几乎任何时候你的逻辑基于类型都是一个糟糕的设计气味!