【问题标题】:Generating Member for labels: Any reason I should?为标签生成成员:我应该有什么理由吗?
【发布时间】:2009-05-19 18:03:16
【问题描述】:

我在另一篇关于 SO 的帖子中读到,如果可能的话,您不应该为标签生成成员。我想知道这会是什么潜在的DRAWBACKS

我说的好处是提高性能是否正确?还要别的吗?

我有一个带有 100 个标签的 winform 应用程序。不生成成员有什么好处,还是仅在 Web 应用中您看到了收益?

谢谢!

【问题讨论】:

    标签: .net visual-studio winforms


    【解决方案1】:

    可读性。如果您为所有标签生成成员,但您没有使用它们,那么它会使您的代码更难阅读。我知道大多数人在想什么,它被放入设计器文件中,所以没关系。任何从事过 WinForms 开发工作的人都知道,您最终将不得不去那里寻找错误(修复好的 ol' 白屏死机)。

    此外,当您为所有内容生成成员时,它会使您的智能感知列表非常长,这是另一个负面因素。

    这不仅适用于标签,也适用于您投放到表单上的任何控件。面板、网格等。如果您从未在代码库中使用它们,请考虑将 Generate Member 更改为 false,因为您反正也不使用它。

    【讨论】:

      【解决方案2】:

      标签具有必须保存在内存中的属性和其他状态。如果你的标签永远不会改变,你可以通过不生成成员来节省一点内存。请注意,不会成为您的应用程序性能的决定因素,但这并不意味着您不应该时不时地在您知道可以的地方节省一点内存。

      它还可以防止标签无用地弄乱表单的智能感知列表。

      应该为您的标签生成成员的一个重要原因是它可以更轻松地进行本地化。

      【讨论】:

      • 本地化?至于不同的国家/语言,对吗?
      • 是的。根据您的操作方式,您可能需要一个成员来绑定资源或设置。
      • Joel,您愿意强调本地化的观点吗?在没有成员变量的情况下本地化标签会更困难? TIA。
      • 糟糕,抱歉,您在我打字时回答了问题。我认为您不需要成员来本地化标签:无论标签是成员还是局部变量,InitializeComponent() 都会提取资源内容。
      • 本地化不是我必须做的太多事情。如果我进入细节,我会弄错的。假设我不确定边界的确切位置或使用内置绑定可以做多少。尽管我认为您在本地化方面遇到问题的地方可能与您想要会员的地方相同:标签有时可能会发生变化
      猜你喜欢
      • 2010-09-22
      • 2011-06-29
      • 2020-05-03
      • 2011-01-30
      • 1970-01-01
      • 2010-10-13
      • 2010-11-03
      • 2014-06-21
      相关资源
      最近更新 更多