Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/297.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 重铸现有控件?_C#_Asp.net - Fatal编程技术网

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;