有没有办法重铸现有的控件?
例如,如果我们循环控制树,直到我们找到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)parentCtrl).ctrlSpecificAttribute = "whatever dude...";
但是懒惰,我想保存一些括号和按键。
是唯一具有单独目标控制的解决方案吗?
bob targetCtrl = (bob)parentCtrl;
答案 0 :(得分:1)
“是唯一具有单独目标控制的解决方案吗?”
是的,因为不是每个Control
都是 Bob
。
如果我使用var parentCtrl然后重铸那该怎么办?或者在那里 使用两个对象最终的性能/内存影响 同样的事情?
var
不是dynamic
,所以我不确定你想怎么做。但是,对bob
和controls
使用不同的变量肯定会更好。