Tôi đang chơi một chút với một số mã C# Winforms/WPF và chỉ tình cờ gặp phải điều gì đó kỳ lạ. Hãy nói rằng tôi có một mã như thế này:Dừng thực thi mã C#
public partial class MainWindow : Window
{
public MainWindow()
{
InitializeComponent();
DoSomething();
// maybe something more if everything went ok
}
}
gì tôi bối rối là tôi không thể chỉ đơn giản là đóng ứng dụng từ phương pháp DoSomething trước khi xây dựng xong công việc của mình. Nếu bất cứ điều gì trong quá trình thực hiện DoSomething
không thành công, tôi cần phải đóng ứng dụng ngay lập tức, nhưng nó chỉ tiếp tục chạy, thực hiện phần // maybe something more...
và THEN đóng, nhưng đó là cách quá muộn đối với tôi.
Tôi phải đặt mã để đóng biểu mẫu bên trong hàm tạo bằng cách sau return;
và sau đó nó hoạt động, nhưng tôi không thực sự thấy rằng một giải pháp có thể chấp nhận được. Tôi đang cố gắng để di chuyển logic xác nhận như vậy từ các nhà xây dựng để phương pháp của tôi.
tôi đã cố gắng những thứ như
public void DoSomething()
{
Close();
}
hoặc
public void DoSomething()
{
Application.Current.Shutdown();
}
Nhưng nó dường như không làm việc. Có, cả hai mã đều đóng ứng dụng, nhưng chỉ sau khi mã xây dựng hoàn thành hoàn chỉnh.
Why
tôi có cần một thứ như vậy không? Vâng, bởi vì lúc khởi động, tôi cần phải kiểm tra những thứ khác nhau, như sự sẵn có của kết nối và phần cứng, xác thực người dùng, và nếu bất cứ điều gì không thành công, không có điểm thực thi mã nữa.
Đã thử nguyên tắc tương tự với Winforms và WPF (do đó các thẻ), hoạt động tương tự.
Ai cũng có thể giải thích hoặc có thể là giải pháp? Tôi biết điều này có lẽ rất cơ bản đối với một số bạn, nhưng xin vui lòng, với tôi, tôi không phải là một lập trình viên Windows, vì vậy đây là điều mới mẻ đối với tôi. Các trang web làm việc một chút khác nhau ... :)
Khi biểu mẫu đầu tiên đang được tạo, không có ứng dụng nào đang chạy, vì vậy Shutdown() có thể bị bỏ qua. Avip cung cấp giải pháp tốt. –