这是我的代码:
namespace Cinemaseats
{public partial class MainForm : Form
{
private const int numOfSeats = 60;
private int numOfReservedSeats = 0;
Seat currentSeat = new Seat();
public MainForm()
{
InitializeComponent();
InitializeGUI();
}
private void InitializeGUI()
{
radioButton1.Checked = true;
namn.Text = string.Empty;
pris.Text = string.Empty;
}
private void button1_Click(object sender, EventArgs e)
{
**int seatNr = ReadAndValidateSeatNr();**
if (seatNr < 0)
{
MessageBox.Show("Välj ett föremål från listan");
return;
}
if (radioButton2.Checked)
ReserveSeat(seatNr);
else
CancelSeat(seatNr);
UpdateGUI(seatNr);
}
public int GetnumOfSeats()
{
return numOfSeats;
}
**public int ReadAndValidateSeatNr()
{
thelist.Items.Add(test); //test
return;
}
string test = Convert.ToString(2);
}**
}
我已经转换了我的字符串&#34; test&#34;到一个int,但仍然VS说返回值必须是一个int?我希望在我的列表框中显示60和34个座位,也就是说#34;座位1和#34;,#34;座位2和#34;等等。我写了一个测试字符串,看看我是否可以使它工作。我不确定getter和setter方法是如何工作的但是我觉得我在这里需要它们吗?
答案 0 :(得分:4)
在ReadAndValidateSeatNr()
函数中,您没有返回任何内容:
public int ReadAndValidateSeatNr()
{
thelist.Items.Add(test); //test
return; //<--------- here nothing is being returned
}
我的编译器给了我同样的错误:P
如果您不需要返回任何内容,请将更改返回void
:
public void ReadAndValidateSeatNr()
{
thelist.Items.Add(test); //test
//return; redundant statement - not even required in this case
}
如果您的要求类似于"Seat 1"
等的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;
}
}
答案 1 :(得分:0)
如果您不想在ReadAndValidateSeatNr
方法中返回某些内容,则应更改为:
public void ReadAndValidateSeatNr()
{
thelist.Items.Add(test);
}
答案 2 :(得分:0)
方法可以返回int或字符串(也就是说只返回一种类型)。正如其他人所建议的那样,如果您不想返回任何内容,请将返回类型更改为void。
如果您的问题仅在开头有“Seat”字符串,则不应将该项添加到方法内的列表框中。而是从方法返回一个int,并通过在主块中执行类似的操作将项添加到列表框中。
thelist.Items.Add(“Seat”+ ReadAndValidateSeatNr()。ToString());
在这种情况下,您的方法将重新调整int并可以单独使用,您仍然可以以您想要的格式添加到列表框中。