C# 重铸现有控件?
有没有办法重铸现有控件 例如,如果我们循环控制树,直到找到类型为C# 重铸现有控件?,c#,asp.net,C#,Asp.net,有没有办法重铸现有控件 例如,如果我们循环控制树,直到找到类型为bob的控制(这里显然没有检查无限循环): “是否唯一具有单独目标控件的解决方案?” 是的,因为不是每个控件都是Bob 如果我使用var parentCtrl,然后重铸它呢?还是有 使用两个对象进行最终测试是否会对性能/内存造成影响 同样的事情 var不是dynamic,因此我不确定您希望如何执行该操作。但是,对于bob和您的控件“是否唯一有单独目标控件的解决方案?”是,因为并不是每个控件都是Bob。如果Bob扩展了控件,则可以将p
bob
的控制(这里显然没有检查无限循环):
“是否唯一具有单独目标控件的解决方案?”
是的,因为不是每个控件都是Bob
如果我使用var parentCtrl,然后重铸它呢?还是有
使用两个对象进行最终测试是否会对性能/内存造成影响
同样的事情
var
不是dynamic
,因此我不确定您希望如何执行该操作。但是,对于bob
和您的控件
“是否唯一有单独目标控件的解决方案?”是,因为并不是每个控件
都是Bob
。如果Bob扩展了控件,则可以将parentCtrl声明为Bobclass@rajeem_cariazo:不是每个控件都是bob,即使每个bob都是control类型。@TimSchmelter如果我使用var parentCtrl
然后重铸它会怎么样?或者,使用两个对象来处理最终相同的事情是否会对性能/内存产生影响?@RemarkLima:var
不是动态的,所以我不确定您想怎么做。但是,对于bob和控件使用不同的变量肯定更好。
Control parentCtrl = this.parent;
do
(
if(parentCtrl.getType == typeof(bob)) { break; }
else { parentCtrl = parentCtrl.parent; }
) while (true)
// This is the bit...?
bob parentCtrl = (bob)parentCtrl; // <-- will not compile as `parentCtrl` has been defined already
bob targetCtrl = (bob)parentCtrl;