我有以下幻灯片对象列表.根据对象'type'var的值,我想在列表中向上转换Slide对象.可能吗?
foreach(Slide slide in slidePack.slides)
{
if(slide.type == SlideType.SECTION_MARKER)
{
//upcast Slide to Section
}
}
Run Code Online (Sandbox Code Playgroud)
Section
扩展Slide
并添加一个参数.
是的,你可以这样做:
Section section = (Section)slide;
Run Code Online (Sandbox Code Playgroud)
...要么:
Section section = slide as Section;
Run Code Online (Sandbox Code Playgroud)
它们之间的区别在于,如果slide
不能转换为第一个将抛出异常Section
,而如果无法转换则第二个将返回异常null
.
这是处理该演员表的正确方法.
编辑:有一些方法可以设计程序,不需要你正在寻找的测试/强制转换,但如果遇到需要尝试将C#对象强制转换为某种类型并根据成功处理不同方式的情况,绝对是这样做的方式.
Section section = slide as Section;
if (section != null)
{
// you know it's a section
}
else
{
// you know it's not
}
Run Code Online (Sandbox Code Playgroud)
归档时间: |
|
查看次数: |
8127 次 |
最近记录: |