Saya telah menyadari betapa seringnya seseorang perlu menulis pola kode berikut dalam kode GUI yang digerakkan oleh event, di mana
private void DoGUISwitch() {
// cruisin for a bruisin' through exception city
object1.Visible = true;
object2.Visible = false;
}
menjadi:
private void DoGUISwitch() {
if (object1.InvokeRequired) {
object1.Invoke(new MethodInvoker(() => { DoGUISwitch(); }));
} else {
object1.Visible = true;
object2.Visible = false;
}
}
Ini adalah pola canggung dalam C #, baik untuk diingat, dan untuk mengetik. Adakah yang datang dengan semacam jalan pintas atau konstruksi yang mengotomatisasi ini ke tingkat tertentu? Akan keren jika ada cara untuk melampirkan fungsi ke objek yang melakukan pemeriksaan ini tanpa harus melalui semua pekerjaan tambahan ini, seperti object1.InvokeIfNecessary.visible = true
pintasan jenis.
Jawaban sebelumnya telah membahas ketidakpraktisan dari hanya memanggil Invoke () setiap kali, dan bahkan kemudian sintaks Invoke () keduanya tidak efisien dan masih canggung untuk dihadapi.
Jadi, adakah yang tahu cara pintas?
object1.InvokeIfNecessary.Visible = true
kalimat Anda ; lihat jawaban saya yang diperbarui dan beri tahu saya apa yang Anda pikirkan.