您必须在运行时检测元素的动态类型.
IShape value = list[x];
if(value is Circle)
{
((Circle)value).radius = 5;
}
Run Code Online (Sandbox Code Playgroud)
你也可以这样做:
Circle value = list[x] as Circle;
if(value != null)
{
value.radius = 5;
}
Run Code Online (Sandbox Code Playgroud)
这具有更快的优点,因为演员表只进行一次.