gpt4 book ai didi

c# - 应用程序资源与静态变量

转载 作者:太空宇宙 更新时间:2023-11-03 13:31:18 25 4
gpt4 key购买 nike

在我的 App.cs 中我有以下内容

private static LayoutManager layoutManager;
public static LayoutManager LayoutManager
{
get { return layoutManager ?? (layoutManager = new LayoutManager()); }
set { layoutManager = value; }
}

我需要从另一个库访问这个变量,所以我在 App XAML 中定义了它,这样我就可以使用 Application.Current.FindResource("LayoutManager"),而不必引用包含的项目应用程序,因为我会得到循环依赖

<Managers:LayoutManager x:Key="LayoutManager"/>
  • 向资源添加对象是最佳选择吗?
  • 在这种情况下,最佳编程实践是什么?

最佳答案

这两种方法本质上是一样的,区别主要是语义上的。

关于您的第一个问题,将条目添加到资源字典会创建一个新对象,并将其放入该范围(应用程序、窗口、面板等)的字典中,这适用于您放置在资源中的任何内容字典,所以真正的问题是放在那里什么。放置在 xaml 中的资源通常由 xaml 代码(或影响它的东西)使用,它通常保留样式、动画等。当然,您可以在那里放置任何您喜欢的东西,但这不太常见。

至于针对这种情况的最佳实践,我认为您最好将对象放在静态属性中,因为您尝试在 c# 中而不是在 xaml 中访问它。它会给您一点性能提升,然后尝试定位资源,并且您不必依赖魔术字符串,如果属性发生变化,它不会给您带来编译时错误。

关于c# - 应用程序资源与静态变量,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20451105/

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