在下面的示例中,我尝试使用一种方法访问列表,但是无法识别列表的名称,为什么?
public partial class MainWindow : Window
{
public MainWindow()
{
InitializeComponent();
List<DutyDay> tour = new List<DutyDay>();
tour.Add(new DutyDay() { Day = "Day 1:" });
tour.Add(new DutyDay() { Day = "Day 2:" });
tour.Add(new DutyDay() { Day = "Day 3:" });
tour.Add(new DutyDay() { Day = "Day 4:" });
tour.Add(new DutyDay() { Day = "Day 5:" });
tour.Add(new DutyDay() { Day = "Day 6:" });
listBoxDutyDays.ItemsSource = tour;
}
private void DatePicker_CalendarClosed(object sender, RoutedEventArgs e)
{
foreach (DutyDay item in tour) <-- "tour" is not recognized?!
{
}
}
}
我已经尝试过将列表公开或放在其他括号之间,但是口译员对此并不满意。
很抱歉这个愚蠢的问题,但我仍然很新...
答案 0 :(得分:3)
您的List变量在Window的构造函数中声明,这意味着只能在该构造函数中访问。
因此,将此变量tour
设置为全局变量,然后可以在整个类中对其进行访问。
喜欢
public partial class MainWindow: Window
{
List<DutyDay> tour = new List<DutyDay>();
public MainWindow()
{
InitializeComponent();
//Your other stuff here.
}
private void DatePicker_CalendarClosed(object sender, RoutedEventArgs e)
{
foreach (DutyDay item in tour) <-- Now its recognized
{
}
}
}
您可以了解有关本地和全局变量here
的更多信息答案 1 :(得分:2)
您需要使Tour
成为实例成员而不是局部变量,因为它在其他方法中没有作用域
public partial class MainWindow : Window
{
private List<DutyDay> tour = new List<DutyDay>();
...
进一步阅读
答案 2 :(得分:2)
您只需要在全局范围内声明它即可访问它。
尝试这个
public partial class MainWindow : Window
{
List<DutyDay> tour = new List<DutyDay>(); // it is declared as global
public MainWindow()
{
InitializeComponent();
//List<DutyDay> tour = new List<DutyDay>(); It Is declared as local
tour.Add(new DutyDay() { Day = "Day 1:" });
tour.Add(new DutyDay() { Day = "Day 2:" });
tour.Add(new DutyDay() { Day = "Day 3:" });
tour.Add(new DutyDay() { Day = "Day 4:" });
tour.Add(new DutyDay() { Day = "Day 5:" });
tour.Add(new DutyDay() { Day = "Day 6:" });
listBoxDutyDays.ItemsSource = tour;
}
private void DatePicker_CalendarClosed(object sender, RoutedEventArgs e)
{
foreach (DutyDay item in tour) <-- "tour" is not recognized?!
{
}
}
}