-1

我有以下表格,它给了我无法将类型 void 隐式转换为 HomeInventory2.Domain.CreateInventory 的错误...

我的表格

namespace HomeInventory2
{
    public partial class Form1 : Form
    {
        public Form1()
        {
            InitializeComponent();
        }

        private void label1_Click(object sender, EventArgs e)
        {
        }

        private void submitButton_Click(object sender, EventArgs e)
        {
            CreateInventory create = new CreateInventory();
            create.ItemAmount = textBoxAmount.Text;
            create.ItemCategory = textBoxCategories.Text;
            create.ItemProperties = textBoxValue.Text;
            create.ItemValue = textBoxValue.Text;

            InventoryMngr invtryMngr = new InventoryMngr();
            CreateInventory creating = invtryMngr.Create(create);
        }
    }
}

以及它引用的 createinventory 文件

namespace HomeInventory2.Domain
{
    [Serializable]
    public class CreateInventory
    {
        private string itemCategory;
        public String ItemCategory
        {
            set { itemCategory = value; }
            get { return itemCategory; }
        }

        private string itemProperties;
        public String ItemProperties
        {
            set { itemProperties = value; }
            get { return itemProperties; }
        }

        private string itemAmount;
        public String ItemAmount
        {
            set { itemAmount = value; }
            get { return itemAmount; }
        }

        private string itemValue;
        public String ItemValue
        {
            set { itemValue = value; }
            get { return itemValue; }
        }
    }
}
4

4 回答 4

2

你为什么这样做:

CreateInventory creating = invtryMngr.Create(create);

为什么不只是:

invtryMngr.Create(create);

因为你正在做的是创建另一个CreateInventory,从你发布的代码来看,不需要在那里。这就是给你错误的原因,因为invtryMngr.Create()很可能返回无效。

于 2012-10-01T20:07:02.840 回答
1

看起来您正在调用 void 方法,invtryMngr.Create(create);因此编译器告诉您,由于该方法不返回任何内容,因此您不能将其分配给creating变量。

于 2012-10-01T20:05:11.093 回答
0

给你错误的行是:

CreateInventory creating = invtryMngr.Create(create);

事实上,我认为这invtryMngr.Create(create)并没有返回任何东西。

于 2012-10-01T20:05:28.507 回答
0

正如其他人已经指出的那样,这条线invtryMngr.Create(create);可能是导致问题的原因。

Create方法可能具有 void 返回类型

public void Create(CreateInventory create)
{
    ...
}

要么这样称呼它而无需分配

invtryMngr.Create(create);

或将方法更改为

public CreateInventory Create(CreateInventory create)
{
    ...
    return createdInventory;
}
于 2012-10-01T20:15:39.183 回答