【问题标题】:Compiler Warning (level 4) CS0649编译器警告(4 级)CS0649
【发布时间】:2022-06-10 16:37:55
【问题描述】:

我只是在编写用于制作消息框的应用程序,而在编写用于保存消息框的功能时,我偶然发现了这一点。

这是警告的照片
picture of the error
字段 'Form1.table' 从未分配给,并且始终具有其默认值 null。
当我点击它时,它会显示这段代码:public Form1()
我搜索了我发现的每个单一网站(包括这里)但是 堆栈溢出:复杂 microsoft docs:只告诉我如何犯错误 有想法该怎么解决这个吗?寻找清晰而简单的答案。或几乎任何可以解决我的问题的东西。

因为 1 条评论,决定发送我的整个 form1.cs 文件

using System;
using System.Data;
using System.Windows.Forms;

namespace Message_Box_Creator
{
   public partial class Form1 : Form
    {
        private readonly DataTable table;
         public Form1()
        {
            InitializeComponent();
        }

        private void Form1_Load(object sender, EventArgs e)
        {
            _ = table; new DataTable();
            table.Columns.Add("title", typeof(String));
            table.Columns.Add("message", typeof(String));
            dataGridView1.DataSource = table;
        }

        private void label2_Click(object sender, EventArgs e)
        {

        }

        private void dataGridView1_CellContentClick(object sender, DataGridViewCellEventArgs e)
        {

        }

        private void button1_Click(object sender, EventArgs e)
        {
            txtTitle.Clear();
            txtMessage.Clear();
        }

        private void bttSave_Click(object sender, EventArgs e)
        {
            table.Rows.Add(txtTitle.Text,txtMessage.Text);
        }
    }
}

【问题讨论】:

  • 请将代码和错误信息都显示为文本。这本质上是文本信息,并且更多更好地呈现为文本。从根本上说,听起来您有一个名为 table 的字段,而您没有为其分配任何内容......目前我们无法告诉您更多信息。
  • 这是一个警告,而不是错误。你可以安全地忽略它,但如果你想让它消失,你应该从 Form1 中删除 table 属性!
  • 错误信息非常清楚 - 该字段未分配给。如果您的想法不同,请确定您认为代码的哪一行为其赋值?我可以告诉你,我对你的_ = table; new DataTable(); 行感到非常困惑,我不知道它试图实现什么,但它没有为table 字段赋值。

标签: c# .net


【解决方案1】:

https://docs.microsoft.com/en-us/dotnet/csharp/misc/cs0649

永远不会分配您班级的表格属性。 它将始终作为默认值。

你应该修复你的代码:

_ = table; new DataTable();

我觉得你甚至没有运行你的代码,否则你应该在这个阶段面临一个空异常

table.Columns.Add("title", typeof(String));

解决方案:

this.table = new DataTable();

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2011-05-09
    • 2016-04-28
    • 2010-09-28
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多