凯锐

  博客园 :: 首页 :: 博问 :: 闪存 :: 新随笔 :: 联系 :: 订阅 订阅 :: 管理 ::

         兩個月之前,新換一個工作后,由於新公司使用VB,而且做web開發,於是不得不暫時丟下用了許久的C#和Winform的開發了。其實本身語言沒有多大的限制的,主要的是做Web,需要改變很多,然又畢竟大部份的都是做Web,所以就學吧,誰叫咱是做這一行的。只有不停的學..........
        也是因為這些相關的種種原因,在博客園中發現了webabcdSmartGridView,在征得原作者的同意之后,也為了配合我那有VB癖好的經理,便將其轉換成了VB的源碼。轉換過程當中,目前只是簡單的語法轉變,並沒有改變原作者的思路。稍后等有時間了再將VB的一些新特性加入進去吧。暫時先用上再說。呵呵....
        轉換過程當中,讓我記憶很深的是轉換自定義事件時的煩惱,舉一兩例,如下的C#代碼

C#源碼
如果要轉成VB的話,必須如下轉換:
VB源碼
一般我們轉換的時候並不會加入
RaiseEvent
但VB如果不加,是會編譯出錯的。2.0是這樣子,不知其它版本如何。當然如果你后面寫了觸發的事件,這個RaiseEvent中的代碼是可以刪掉不好,也不會出錯的。只是形式必須有而憶。
其次就是轉下面這一句的時候
                int sortOrderIndex = Array.FindIndex(sortColumns, delegate(string s) return s.IndexOf(columnName) != -1; });

VB必須要分開寫delegate的實現
VB
看來.C#,VB要互通有無還有得東西要學......
        先記下這兩點印象深刻點的貼上來。說不定哪天讓你也能用上,那此篇也就達到了我今天的目的了。.....
另外有點弱弱的問題是當我在翻譯導出的這段代碼時,在實際運行階段總是出現不可認識的<eof>標簽,忒郁悶半天之后,將For i As Integer = 0 To headers.Length - 1設為For i As Integer = 0 To headers.Length - 2,搞不明白為什么,我是因為將兩個xsl保存下來之后,才發現VB產生的多了一行,所以就少循環一次就可以了。
posted on 2007-08-30 22:04  凯锐  阅读(2111)  评论(1编辑  收藏  举报