[英]Moving asp.net team from VB.Net to C#, seems are we are missing something with wiring up events?
我正在工作的asp.net(主要是Webforms)團隊最近決定從vb.net轉到c#。 此后,曾經不能很好地讀寫C#代碼的團隊中的人開始遷移,每次我們雇用一個新人時,成為vb.net商店就成為一個問題。
我將保存標准的vb / c#語言戰爭資料,並堅持使用我今天遇到的一件事。
使用vb.net,當我們要處理某個對象的某些事件時,我們只需從左上角的列表中選擇該對象,從右上角的列表中選擇該事件,然后創建完全連線的事件處理程序。 同樣非常清楚的是,由於最后使用了“ Handles ...”,因此該方法是一個事件處理程序。
在C#世界中, 似乎我們還有一些糟糕的選擇。
1)通過在aspx標記中鍵入事件的名稱和事件處理程序來手動連接事件。 就像在aspx中實際編寫“ OnLoad = SomeFunction”一樣。 (編輯:我沒有意識到他僅適用於表單,而不適用於任何包含的控件,因此我想這並不是一個選擇)
2)使用自動連線事件,並正確命名方法和簽名,以使其匹配。
我希望我缺少其他更好的選擇。
到目前為止,我已經看到了以下兩個選項:
1)我們必須知道事件名稱和事件參數。 我們不能只看列表,而要像“哦,這有OnItemClick”,我必須去研究一些控制文檔。 同樣,我必須去研究事件args才能發現ItemClick需要RadPanelBarEventArgs作為第二個參數。 浪費時間。
2)我沒有任何關於連接事件的編譯檢查。 如果我將方法簽名命名為錯誤,或者如果在aspx頁面中鍵入錯誤的方法簽名,則一切都會正常編譯,直到運行時出現不匹配的情況為止。 (編輯:我的意思是,如果我鍵入onClick =“ ABC”且事件處理程序的名稱為“ ABCD”,則在編譯時將不會捕獲該事件。使用VB,在編譯時會捕獲到重命名/錯誤鍵入事件處理程序名稱的問題,因為存在“句柄”。如果我有onClick =“ ABC”,並且此控件onClick確實需要SpecialEventArgs,但我不小心使用SomeRegularEventArgs,也是如此。
我希望我們錯過了一些東西,並且有更好的方法可以做到這一點。
這是已知的“錯誤”或缺少的功能。 請參閱Visual Studio 2010,其中顯示了來自代碼背后的可用事件
如果要在C#中自動生成事件:
至於2號。您是否將代碼放在代碼隱藏文件中? .aspx.cs?
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.