यदि सबसे अच्छा तरीका सब्सक्राइब्ड इवेंटहैंडलर पर एक संदर्भ रखना है, तो यह एक शब्दकोश का उपयोग करके प्राप्त किया जा सकता है।
इस उदाहरण में, मुझे DataGridViews के एक सेट के लिए मर्जकॉल्यूमिनेशन पैरामीटर को शामिल करने के लिए एक अनाम विधि का उपयोग करना होगा।
सही में सेट किए गए सक्षम पैरामीटर के साथ मर्जकॉल्यूमिनेशन विधि का उपयोग करके घटना को सक्षम करता है जबकि इसे गलत अक्षमता के साथ उपयोग करता है।
static Dictionary<DataGridView, PaintEventHandler> subscriptions = new Dictionary<DataGridView, PaintEventHandler>();
public static void MergeColumns(this DataGridView dg, bool enable, params ColumnGroup[] mergedColumns) {
if(enable) {
subscriptions[dg] = (s, e) => Dg_Paint(s, e, mergedColumns);
dg.Paint += subscriptions[dg];
}
else {
if(subscriptions.ContainsKey(dg)) {
dg.Paint -= subscriptions[dg];
subscriptions.Remove(dg);
}
}
}