【问题标题】:CS0649 warning on private static field私有静态字段上的 CS0649 警告
【发布时间】:2015-11-30 01:30:38
【问题描述】:

我收到以下警告:

警告 CS0649 字段“TemplateManager.Templates”从未分配给, 并且将始终具有其默认值 null

相关代码如下:

public static class TemplateManager
    {
        private static Dictionary<string, Stream> Templates;
        public static List<string> TemplateNames { get; private set; }

        static TemplateManager()
        {
            Templates = new Dictionary<string, Stream>();
            TemplateNames = new List<string>();
        }

在我看来,我正在为它赋值。这是一个错误还是我只是错过了一些重要的事情?是否与类和/或字段是静态的事实有关?

【问题讨论】:

  • 您确定输入正确吗?我的 Visual Studio 没有出现任何错误。事实上,您可以删除初始化,仍然不会出现语法错误 - 根本不需要分配静态变量..
  • 我试图重现这个但我没有收到错误,这很可能是 VS 出于某种原因没有更新警告的问题,这种情况不时发生。只需编译或重新启动 VS,它就会消失。
  • 如果将初始化移到字段本身(而不是在构造函数中),是否还会出现错误?
  • 似乎清理和重建项目解决了它。谢谢您的帮助!不过,尝试重新编译并重新启动已经没有运气了。

标签: c# static field warnings private


【解决方案1】:

通过清理和重建我的项目解决了这个问题。

【讨论】:

    【解决方案2】:

    造成这种情况的原因可能是因为您已设置为私有。这可能意味着您无法访问 set 函数,因此它永远不会被更新为 null。设置前去掉private,试试看。

    [更新] 是的,我的错我完全看错了。

    【讨论】:

    • private 不是这样做的。
    猜你喜欢
    • 1970-01-01
    • 2020-11-12
    • 2022-06-10
    • 1970-01-01
    • 2014-06-19
    • 2012-09-29
    • 2012-03-27
    • 2018-04-02
    • 1970-01-01
    相关资源
    最近更新 更多