2012-10-01 52 views
-1

我有以下的形式,给了我,我不能隐式转换类型void来HomeInventory2.Domain.CreateInventory错误...C# - 不能隐式转换类型为void

我的形式

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; } 
     } 
    } 
} 
+3

那一行你得到异常?它可能_really_不应该发生在'new CreateInventory();'上,但我们不知道'invtryMngr.Create(create);'是什么。你能为此显示方法签名吗?如果它返回一个“void”,那么这就是你的答案。 – David

+1

发布'InventoryMngr'的代码。关于你的异常的更多信息会很好,比如它打破了什么路线。帮助我们帮助你。 – Gromer

+2

什么是InventoryMngr.Create的返回类型? – Erwin

回答

2

你为什么这样做:

CreateInventory creating = invtryMngr.Create(create);

为什么不干脆:

invtryMngr.Create(create);

因为你正在做的是创造另一个CreateInventory,通过代码判断贴出来,没有按不需要在那里。这是什么给你的错误,因为invtryMngr.Create()返回无效,最有可能的。

1

它看起来像你调用一个void方法invtryMngr.Create(create);所以编译器会提醒您,因为该方法母鹿不会返回任何东西,您无法将其分配给creating变量。

0

它给你的错误该生产线是:

CreateInventory creating = invtryMngr.Create(create); 

逸岸我认为invtryMngr.Create(create)不返回任何东西。

0

正如其他人已经指出的,行invtryMngr.Create(create);可能是造成这个问题。

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

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

无论称呼它没有assignement

invtryMngr.Create(create); 

或改变方法

public CreateInventory Create(CreateInventory create) 
{ 
    ... 
    return createdInventory; 
} 
相关问题