我正在尝试制作一个程序,为“事件”保留并显示可用和不可用的座位。我得到的错误如下:
'System.Nullable'不包含'Yes'的定义,并且没有扩展方法'Yes'可以找到接受类型'System.Nullable'的第一个参数(你是否缺少using指令或汇编引用? )
(同样适用于“否”)和
'System.Windows.Window.DialogResult'是'属性',但用作'类型'。
这是我到目前为止所做的:
private void btnSeat1_Click(object sender, RoutedEventArgs e)
{
if (!Seat1)
{
DialogResult Result = MessageBox.Show("This Seat is Available, Would you like to pick it?", "Would you like this seat?", MessageBoxButton.YesNo, MessageBoxImage.Question);
if (Result == DialogResult.Yes)
{
MessageBox.Show("You Reserved this seat");
btnSeat1.Text = "Reserved";
}
else if (Result == DialogResult.No)
{
Environment.Exit(0);
}
注意:我只使用Environment.Exit作为占位符。这是故意的,并将相应地改变。这不是问题的根源。
答案 0 :(得分:7)
这一行:
DialogResult Result = MessageBox.Show("This Seat is Available, Would you like to pick it?", "Would you like this seat?", MessageBoxButton.YesNo, MessageBoxImage.Question);
实际上应该是这样的:
var Result = MessageBox.Show("This Seat is Available, Would you like to pick it?", "Would you like this seat?", MessageBoxButton.YesNo, MessageBoxImage.Question);
然后,如果您将鼠标悬停在Result
上,则可以看到它不是DialogResult
,而是MessageBoxResult
,或者,如果您希望明确键入它,请尝试:
MessageBoxResult Result = MessageBox.Show(...
所以你会在if语句中使用它:
if (Result == MessageBoxResult.Yes)
{
MessageBox.Show("You Reserved this seat");
btnSeat1.Text = "Reserved";
}
else if (Result == MessageBoxResult.No)
{
Environment.Exit(0);
}
您收到错误是因为DialogResult
实际上是Window
类的属性,并且您尝试将其用作类型(如编译器所述)。