今天在项目里发现了很多这个样子的警告 warning CS0649
起初我认为是一个UI页面的组件 只用于显示或隐藏或者监听事件等 没有赋值引起的 后来发现一些有赋值的text也有同样的警告。
继而发现可有警告的组件都是这样的
在网上终于找到了答案
该警告应仅出现在私有成员变量中。那些不能从外部设置,这就是为什么编译器可以确定它们没有设置在任何地方。在C#中,没有访问修饰符的变量(private,protected,public ...)始终是私有的。
解决方法
-
让字段公开,警告将消失。
-
默认情况下,为所有公共变量分配null或其他内容 (private Text m_Text = null;)
-
在脚本之上写#pragma warning disable 649。
第三种方法并不好,因为它不会让你误解你的其他非法用途以及你错误定义和从未分配的其他变量。从软件工程的角度来看,第一种方法并不好,因为您可以访问不需要从外部访问的类。第二种方法使代码变得丑陋,有时您可能会忘记分配值,但似乎是最好的方法