gpt4 book ai didi

c# - 好的,我应该在哪里创建动态控件

转载 作者:行者123 更新时间:2023-11-30 16:31:54 25 4
gpt4 key购买 nike

我刚刚积极回答了两个有关动态控件的问题,答案几乎总是关于在回发时重新创建,问题是正确的位置在哪里

这是两个SO问题

question one

question 2

我们总是通过覆盖 CreateChildControls 来创建动态控件

查看了反射器中的很多控件,主要是 telerik 控件,我一直认为这是正确的,但是很多人说它们应该在 Init 中创建。

我应该继续使用 CreateChildControls 还是 Init 是正确的方法...为什么这似乎是一个令人困惑的领域..

最佳答案

事实上,他们都完成了同样的事情。如果您正在为您的组织开发控件,那么将它放在 init 中就可以了(因为它会工作,即使它“在技术上它应该在的地方”,但 MS 已经创建了一种他们期望它去的方法.

如果您像 Telerik 一样,在其中创建其他人会使用的控件,那么我肯定会把它放在 CreateChildControls 类中。为什么?因为,这是人们所期望的,也是 MS 希望控件开发人员做的。在这种情况下(特别是如果您开发的控件未密封),您必须关心的是有人可以覆盖不同的方法,就像您看到很多人覆盖 init 类使他们的代码按照他们想要的方式工作。您总是希望避免您的代码神秘地无法工作的情况,因为他们忘记调用基本方法,而且没有记录。当您将它放在 CreateChildControls 方法中时,您是在告诉其他开发人员:“我可能正在做一些事情,在这里您需要注意创建控件。”如果我覆盖它,我总是会考虑对该方法的基础进行分类。

将它放在 CreateChildControls 中的另一个好处是很多人可能不知道它(知道的人知道它的用途)。因此,当它们从您的控件继承并使用 Init 并忘记调用基本 Init 方法时,您的代码仍然“神奇地”工作,并且它们不必大惊小怪地弄清楚出了什么问题。

关于c# - 好的,我应该在哪里创建动态控件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4500385/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com