cuốn sách gpt4 ai đã làm

c# - Hủy bỏ trong phương thức Vứt bỏ

In lại Tác giả: Vũ trụ không gian Thời gian cập nhật: 2023-11-03 18:35:54 30 4
mua khóa gpt4 Nike

Có cách nào để loại bỏ khỏi phương thức Dispose, hay nói cách khác là không loại bỏ A khi gọi A.Dispose().

gia hạnTôi không giải thích rõ lắm vì tôi không nghĩ ra cách nào hay để diễn đạt. Những gì tôi có là một lớp hiển thị thanh tiến trình (vùng chọn) trong cửa sổ bật lên chạy trong một chuỗi riêng biệt. Khi tạo cửa sổ bật lên tiến trình, một đối tượng dùng một lần tương tự như Bộ điều khiển sẽ được trả về, vì vậy chúng ta có thể thực hiện việc này:

sử dụng (var Progress = Dialogs.ShowProgress("Xin vui lòng đợi..."))
{
// làm rất nhiều thứ ở đây
Progress.UpdateStatus("Xin vui lòng đợi thêm...");
// làm nhiều thứ hơn
}

Khi khối sử dụng thoát ra, cửa sổ tiến trình sẽ bị đóng và hủy.

Bây giờ tôi gặp tình huống những gì xảy ra trong khối này cũng tạo ra một cửa sổ tiến trình, thay vì trả về một đối tượng mới và tạo một cửa sổ mới, tôi muốn trả về phiên bản đầu tiên của đối tượng đã tạo và chỉ loại bỏ nó trong phiên bản đầu tiên.

gia hạnĐược rồi, những gì tôi đã làm là cho mỗi Dialogs.ShowProgress() Cuộc gọi tạo một đối tượng IDisposable mới và gắn đối tượng Controller gốc vào nó. Các đối tượng này được giải phóng khi hoàn thành, trong khi Controller chỉ được giải phóng khi đó là đối tượng duy nhất được giải phóng.

câu trả lời hay nhất

Như những người khác đã nói, được thực hiện theo cách có thể không thực sự giải phóng ID dùng một lần là một ý tưởng tồi. Đây là một cách khác để đạt được điều bạn muốn làm:

giao diện ICó thể dùng một lần
{
bool TryDispose(); // trả về false nếu việc xử lý bị hủy
}

Bạn có thể sử dụng nó như thế này:

I MaybeDisposable có lẽ = //thứ gì đó
thử
{
// làm điều gì đó với có thể
}
finally
{
nếu (có thể.TryDispose())
// vâng, nó đã được xử lý!
khác
// hm, nó không làm được việc gì khác;
}

Về c# - hủy bỏ việc xử lý trong phương thức Vứt bỏ, chúng tôi đã tìm thấy một câu hỏi tương tự trên Stack Overflow: https://stackoverflow.com/questions/15532808/

30 4 0
không gian vũ trụ
Hồ sơ

Tôi là một lập trình viên xuất sắc, rất giỏi!

Nhận phiếu giảm giá taxi Didi miễn phí
Phiếu giảm giá taxi Didi
Chứng chỉ ICP Bắc Kinh số 000000
Hợp tác quảng cáo: 1813099741@qq.com 6ren.com
Xem sitemap của VNExpress