gpt4 book ai didi

wpf - 未在 WPF 中指定控件名称...性能效果

转载 作者:行者123 更新时间:2023-12-04 10:21:48 24 4
gpt4 key购买 nike

如果您需要从后面的代码访问 WPF 控件,您需要提供 Name XAML 中的属性。

在许多情况下,您不需要从后面的代码中访问控件,因为很多编码逻辑(例如绑定(bind))最好直接应用在 XAML 中。

我的问题是: 是否有性能提升?不是 向控件提供名称属性?或者为页面上的所有控件命名是否是一个好习惯?

最佳答案

是的,不提供“名称”属性肯定会提高性能。

WPF 的“名称”机制可能很有用,但它以多种方式使用额外的 RAM 和 CPU:

  • XAML 编译器在您的类中为每个命名对象分配一个额外的槽(每个 4 字节)
  • XAML 编译器将代码添加到您的类中以启动其中的每一个
  • BAML 处理器回调您的代码以在每种情况下初始化名称
  • BAML 处理器还将名称添加到字典中,每个名称需要额外 20 多个字节
  • 在查找您真正需要的名称时,您可能会遇到与您并不真正需要的名称的字典冲突

  • 对于一个简单的控件,给控件添加一个Name可以增加使用该控件的成本5%左右。这不是很多,但为什么要把你的 CPU 周期和 RAM 浪费在不必要的名字上呢?

    底线:如果您的对象不需要名称,请不要命名它们。通常,控件的内容或绑定(bind)足以识别控件的用途。如果这些文档还不够,您可以随时使用免费的 XML 注释。

    我不得不说这是一个非常 命名所有控件的习惯,不仅是因为成本,还因为它鼓励您按名称引用控件,而不是使用正确的 View 模型和绑定(bind)技术。我的大多数 XAML 都不使用任何控件的“名称”,更不用说所有控件了。

    关于wpf - 未在 WPF 中指定控件名称...性能效果,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3100007/

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