-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()。おそらく void を返すからです。

于 2012-10-01T20:07:02.840 に答える
1

でvoidメソッドを呼び出しているように見えるinvtryMngr.Create(create);ので、コンパイラは、メソッドが何も返さないため、それをcreating変数に割り当てることができないと通知します。

于 2012-10-01T20:05:11.093 に答える
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 に答える
0

エラーが発生する行は次のとおりです。

CreateInventory creating = invtryMngr.Create(create);

invtryMngr.Create(create)実際、それは何も返さなかったと思います。

于 2012-10-01T20:05:28.507 に答える