c#-无法隐式转换类型void

c#-无法隐式转换类型void,c#,C#,我有下面的表单,它给了我一个错误,我不能隐式地将类型void转换为HomeInventory2.Domain.CreateInventory 我的表格 namespace HomeInventory2 { public partial class Form1 : Form { public Form1() { InitializeComponent(); } private void lab

我有下面的表单,它给了我一个错误,我不能隐式地将类型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; }
        }
    }
}

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

给出错误的行是:

CreateInventory creating = invtryMngr.Create(create);
事实上,我认为
invtryMngr.Create(Create)
没有返回任何内容。

您为什么要这样做:

CreateInventory creating=invtryMngr.Create(创建)

为什么不只是:

invtryMngr.Create(创建)


因为你正在做的是创建另一个
CreateInventory
,根据你发布的代码判断,它不需要在那里。这就是导致错误的原因,因为
invtryMngr.Create()
很可能返回void。

正如其他人已经指出的,行
invtryMngr.Create(Create)可能是导致问题的原因

Create
方法可能有一个void返回类型

public void Create(CreateInventory create)
{
    ...
}
要么就这样叫它,不加修饰

invtryMngr.Create(create);
或者将方法更改为

public CreateInventory Create(CreateInventory create)
{
    ...
    return createdInventory;
}

您在哪一行收到异常?它可能真的不应该发生在
newcreateinventory()上,但我们不知道什么是
invtryMngr.Create(Create)是。你能给我看一下它的方法签名吗?如果它返回一个
void
,那么这就是你的答案。为
InventoryMngr
发布代码。关于您的异常的更多信息会更好,比如它在哪一行中断。帮助我们帮助您。InventoryMngr.Create的返回类型是什么?这是给出错误的行。。谷歌介绍如何在C#CreateInventory creating=invtryMngr.Create(Create)中创建构造函数;你不能退回作废