需要可转换为“int”类型的对象

Bax*_*tex 0 c# string int implicit-conversion

这是我的代码:

\n\n
namespace Cinemaseats\n\n {public partial class MainForm : Form\n    {\n    private const int numOfSeats = 60;\n    private int numOfReservedSeats = 0;\n    Seat currentSeat = new Seat();\n    public MainForm()\n    {\n        InitializeComponent();\n        InitializeGUI();\n    }\n\n    private void InitializeGUI()\n    {\n        radioButton1.Checked = true;\n        namn.Text = string.Empty;\n        pris.Text = string.Empty;\n    }\n    private void button1_Click(object sender, EventArgs e)\n    {\n        **int seatNr = ReadAndValidateSeatNr();**\n\n        if (seatNr < 0)\n        {\n            MessageBox.Show("V\xc3\xa4lj ett f\xc3\xb6rem\xc3\xa5l fr\xc3\xa5n listan");\n            return;\n        }\n\n        if (radioButton2.Checked)\n            ReserveSeat(seatNr);\n        else\n            CancelSeat(seatNr);\n\n        UpdateGUI(seatNr);\n    }\n\n    public int GetnumOfSeats()\n    {\n        return numOfSeats;\n    }\n\n    **public int ReadAndValidateSeatNr()\n    {\n     thelist.Items.Add(test); //test\n     return;\n    }\n    string test = Convert.ToString(2);\n}**\n}\n
Run Code Online (Sandbox Code Playgroud)\n\n

我已经将字符串“test”转换为 int,但 VS 仍然说返回值必须是 int?我想在我的列表框中显示 60 个“座位”,也就是说“座位 1”、“座位 2”等。我编写了一个测试字符串来查看是否可以使其工作。我不确定如何 getter和 setter 方法有效,但我想我在这里需要它们?

\n

Sad*_*que 6

在您的ReadAndValidateSeatNr()函数中,您不会返回任何内容:

public int ReadAndValidateSeatNr()
{
     thelist.Items.Add(test); //test
     return;  //<--------- here nothing is being returned
}
Run Code Online (Sandbox Code Playgroud)

我的编译器给了我同样的错误:P

在此输入图像描述

void如果不需要返回任何内容,请将 return 更改为:

public void ReadAndValidateSeatNr()
{
     thelist.Items.Add(test); //test
     //return; redundant statement - not even required in this case
}
Run Code Online (Sandbox Code Playgroud)

如果您的要求类似于 1 for"Seat 1"等 - 则选择枚举:

enum my_enum{ Seat1=1, Seat2= 2};

public int ReadAndValidateSeatNr()
{
        switch(test)
        {
             case "Seat 1":
             thelist.Items.Add(test); //test
             return (int)my_enum.Seat1;

             case "Seat 2":
             thelist.Items.Add(test); //test
             return (int)my_enum.Seat2;
        }
}
Run Code Online (Sandbox Code Playgroud)