2012-10-01 97 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; 
} 
相關問題