c#-无法隐式转换类型void
我有下面的表单,它给了我一个错误,我不能隐式地将类型void转换为HomeInventory2.Domain.CreateInventory 我的表格c#-无法隐式转换类型void,c#,C#,我有下面的表单,它给了我一个错误,我不能隐式地将类型void转换为HomeInventory2.Domain.CreateInventory 我的表格 namespace HomeInventory2 { public partial class Form1 : Form { public Form1() { InitializeComponent(); } private void lab
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)中创建构造函数;你不能退回作废