You need to enable JavaScript to run this app.
最新活动
大模型
产品
解决方案
定价
生态与合作
支持与服务
开发者
了解我们

WPF中如何在按钮点击方法中访问构造函数内的Auto类实例?

解决WPF中按钮点击方法访问构造函数内实例化对象的问题

这问题我之前也碰到过,核心是变量作用域的问题!你在构造函数里创建的firstcar是个局部变量,它的作用范围只限于构造函数内部,按钮点击方法根本看不到它,所以才会出现“未赋值”的错误提示。

解决方法很简单,把firstcar提升为MainWindow类的私有字段,这样整个类的成员方法(包括按钮点击事件)都能访问到它:

步骤1:在MainWindow类中定义私有字段

在MainWindow类的顶部(构造函数外面)添加这个字段:

private Auto firstcar;

步骤2:在构造函数中实例化这个字段

修改你的构造函数,把原来的局部变量赋值给类字段:

public MainWindow()
{
    InitializeComponent(); // 注意:WPF窗口构造函数必须先调用这个方法初始化界面元素
    firstcar = new Auto();
}

步骤3:在按钮点击方法中直接使用字段

现在你可以在按钮点击方法里直接操作firstcar的属性了,比如假设Auto类有Km属性:

private void btnKm_Click(object sender, RoutedEventArgs e)
{
    // 直接给firstcar的属性赋值
    firstcar.Km = 5000;
    // 其他你需要的操作
}

为什么你原来的写法不行?因为Auto firstcar = firstcar;是在按钮方法里重新声明了一个局部变量firstcar,但右边的firstcar在这个方法里还没有被定义和赋值,编译器自然会报错。而且就算能通过编译,这个新的局部变量和构造函数里的firstcar也完全是两个不同的对象,根本达不到你想要的效果。

内容的提问来源于stack exchange,提问作者user9690206

火山引擎 最新活动