簡體   English   中英

將asp.net團隊從VB.Net遷移到C#,似乎我們在連接事件方面缺少什么?

[英]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#中自動生成事件:

  • 在設計視圖中轉到您的aspx頁面。
  • 確保屬性面板可見
  • 用鼠標選擇一個控件,或使用屬性下的下拉列表選擇控件。
  • 移至“事件”選項卡(閃電)
  • 找到您要關聯的事件,然后輸入名稱並按Enter,將其保留為空,然后按Enter,或雙擊它。
  • 它將創建具有所有屬性的事件處理程序。

至於2號。您是否將代碼放在代碼隱藏文件中? .aspx.cs?

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM