了解 C# 中的语法
我希望有人能帮助我理解下面的代码行中发生了什么:
Table t = (Table)Page.FindControl("Panel1").FindControl("tbl");
我理解 Page.FindControl("Panel1").FindControl("tbl");
为什么Page.FindControl之前有一个(Table)?
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(4)
FindControl
被声明为返回Control
(猜测:),而您需要将结果存储在Table
类型的变量中。(Table)
位是一个 cast - 它基本上是在说,“我认为这将是一个Table
。在执行时为我检查一下,然后让我相应地使用它。”FindControl
is declared to returnControl
(at a guess :) whereas you need to store the result in a variable of typeTable
.The
(Table)
bit is a cast - it's basically saying, "I think this will be aTable
. Check it for me at execution time, and then let me use it accordingly."Page.FindControl
返回一个Control
类型&因此您需要将其转换为您需要使用的相关控件类型...参考:http://msdn.microsoft.com/en-us/library/31hxzsdw.aspx
HTH。
旁注:
我希望我们能够做到:
也许通过一些扩展方法的魔法,我们可以获得:
Page.FindControl
returns aControl
type & so you will need to cast it to the relevant type of control you need to use...Ref.: http://msdn.microsoft.com/en-us/library/31hxzsdw.aspx
HTH.
Side note:
I wish we could do:
Maybe with a bit of extension method magic, we could get:
请参阅() 运算符(C# 参考)
以及转换和类型转换(C# 编程指南)
See () Operator (C# Reference)
And Casting and Type Conversions (C# Programming Guide)
FindControl 返回
Control
类型。代码中的表继承
Control
。通过将对象显式转换为其定义的类型,您可以访问该类型的所有属性,而不仅仅是从Control
继承的属性。FindControl returns a type of
Control
.Table in your code inherits
Control
. By explicitly casting the object to it's defined Type, you get access to all properties of that Type, instead of only the inherited properties fromControl
.