Time of Update: 2018-12-08
暫時無法訪問部落格堂,先貼到這裡了,等能訪問了再複製過去……其實這問題源於輕劍傲風解答尉遲方兄遇到的面試題那個文章。這道題如下:1、reverse a sentence in place. 例子:I am yuchifang -> yuchifang am I 注意in place 關鍵點在於“in place”,即“就地”。我的理解是,要求這個轉換所佔的全部空間限於原字串所在的地址空間,不得使用額外的儲存空間。輕劍傲風已經給出了一種解答方案,思路的確是滿足了in
Time of Update: 2018-12-08
本期是Visual Basic 9.0前沿播報動態篇的第三篇,也是這個系列的完結篇。按照慣例,我將Visual Basic 9.0最激動人心的部分放在了這一篇。在這一篇,我們將看到所有新特性作用在XML上之後帶來的革新性變化。Visual Basic 9.0專門為XML整合設定了一個開發組,力求將XML語言與Visual Basic語言完全結合,使Visual Basic成為全行業對XML支援最佳的開發工具。這些新特性都基於微軟的XLinq——新一代支援Language-integrated
Time of Update: 2018-12-08
在CSDN上看到了這道題http://community.csdn.net/Expert/topic/4654/4654528.xml是寫一小段程式,列印自己的代碼。按我的理解,這裡應當不能利用中繼資料或者檔案操作,要完全使用程式碼產生一段和自己的代碼一模一樣的字串。我寫了幾個版本,這些程式運行出來的結果都是列印所貼代碼本身,大家可以試試看,娛樂一下,僅此而已。C#版,為簡化字串操作,該程式只有一行。class P{static void Main(){string s="class P{{st
Time of Update: 2018-12-08
除了J#外,所有微軟支援的.NET開發語言現在均支援運算子多載,因此純粹為C#簡化寫法一樣特性現已成為一種.NET開發中值得研究的一項重要語言特性。有人認為運算子多載其實就是簡化寫法,滿足類比基本類型操作的小功能,沒有必要深究。但我覺得要多思考一層,為什麼我們總希望類比基本類型的操作?因為運算子多載能夠將操作中綴化,能夠自動推測靜態過程的主體。首先是操作中綴化。函數調用其實是一種首碼操作,函數(代表操作)總是在參數(代表運算元)之前寫出。這樣執行序列操作時啟動並執行順序其實和書寫的順序相反:H(
Time of Update: 2018-12-08
我在介紹Visual Basic 9.0的時候,曾經多次提到Tuple這個概念,當時是作為匿名型別的執行個體出現的。現在我們單獨來討論一下這個概念。Tuple常常譯為“組元”,在大部分支援Tuple的語言中,常常表示成員數目確定,每個成員類型也確定的結構。常常用於表示函數的多個傳回值或者查詢的結果等。Tuple應當是強型別的,即所有成員的類型在編譯時間確定。比如,假想文法下Dim t = New Tuple(Of String, Integer,
Time of Update: 2018-12-08
在Visual Basic 2005以前的版本,如果類或結構沒有定義初始化建構函式,我們就必須用屬性逐一賦值的方式。比如'假設有個結構Person,有Name和Age屬性'VB 2005代碼Dim p As PersonWith p .Name = "Jack" .Age = 27End With這樣,對象的初始化不能與對象的定義同時完成,多少有些不便。特別是我們在運算式中需要Person類型的時候,無法就地產生,必須另寫代碼初始化,這會打斷我們的思路。Visual Basic 9.
Time of Update: 2018-12-08
注意:本系列未經許可,不得轉載。
Time of Update: 2018-12-08
今天在二十四畫生的文章裡發現一個問題,有些Visual Basic的使用者認為VB的內建函數直接定義在Microsoft.Visual
Time of Update: 2018-12-08
Visual Basic 9.0支援新一代語言整合的查詢功能,支援在DLinq的資料對象或者XLinq的XML資料上實施關係型的查詢,這些查詢是利用DLinq或者XLinq相關對象上一組方法(或者叫算符)來實現的。而VB9的開發人員認為這套查詢方法也應該能用於現有的對象資料群組織方式,比如IEnumerable和其他集合。因此,Visual Basic
Time of Update: 2018-12-08
本期介紹的兩個VB9作為資料開發協助工具功能的新特性。CLR在.NET 2.0增加了許多關於委託的新特性(但大部分都不為任何語言所支援),其中一個叫做協變的特性允許放鬆委託與函數綁定時的簽名檢查(C# 2.0支援)。為了追求更高的靈活性,VB9決定在協變的基礎上再進一步,引入鬆弛委託的概念。主要是按照以下規則為委託的執行個體指定函數:1、函數的參數個數和傳回值類型與委託的簽名相同2、函數的參數類型與委託簽名相應位置上的參數類型有父子類或介面-實現關係,或Visual
Time of Update: 2018-12-08
今天[ IceSharK - PP.Poet ]很清純地提出了一個問題,如何能做到函數傳回值重載?簡單的說,就是如何? string Test() {...} int Test() {...} 然後通過接受方的上下文自動選取重載: int i = Test(); string s = Test(); 當然VB或者C#都是不允許這樣寫的。不過IL並沒有禁止這一寫法,事實上在VB或C#中有一種文法結構允許按照傳回值選取相應的重載,那就是隱式類型轉換運算子(implicit
Time of Update: 2018-12-08
上篇中我們用DirectX Compute Shader在顯卡上編寫了一個並行演算法來計算好看的曼德勃羅特集迭代數圖形。那麼使用顯卡進行通用計算到底有多少優勢呢?我們本次就來比較一番。首先我們在CPU上也實現該演算法。為了方便起見我們設計了一個類:class CPUCalc{private: int m_stride; int m_width; int m_height; float m_realMin; float m_imagMin; float
Time of Update: 2018-12-08
昨天忙了一個晚上,終於發布了新的BETA 1.5。叫BETA 1.5而不是BETA2的原因是我覺得這次發布比較倉卒,品質恐怕還到不了叫BETA2的程度。但是這次更新帶來的新特性還是比較多的。下載頁面: http://sourceforge.net/project/showfiles.php?group_id=148613
Time of Update: 2018-12-08
我即將在部落格堂和部落格源同時開始《Visual Basic 9.0前沿播報》詳細報道。內容涉及全部VB9當前設計下的語言新特性和相關XLinq/DLinq API結合的狀況。以下是內容預告靜態篇一、局部變數類型推測和數組初始化器Dim a = 5Dim arr = {1, 2, 3}二、對象初始化器和匿名型別Dim a = New Employee{.Name = "Jack", .Age = 27}Dim b = New {.Date = Now, .Quantity = 1000}Dim
Time of Update: 2018-12-08
動態語言今年來發展很快,各種指令碼語言多少都帶有些動態語言的特點。動態語言以其靈活的文法和豐富的運行時行為贏得了許多人的青睞。在.NET陣營,C#一直扮演著靜態語言的角色,儘管3.0的文法改變很激進,但仍注重於編譯時間的類型檢查和約束。動態特性用的不好會產生更多運行時問題,不易確保程式的可靠性,但其提高開發效率的作用是毋庸置疑的。Visual Basic 9.0是Visual Studio中唯一能讓你統領動態和靜態兩大領域的語言,讓你在程式中自由選擇喜歡的風格。Visual Basic 從1.0
Time of Update: 2018-12-08
本文為一些泛型反射技巧的簡單羅列,為日後的文章做準備。1、如何獲得一個封閉構造類型(closed constructed type)的Type對象?假設有如下的類型:class TestType<T>class TestType<T, U>如果要獲得封閉構造類型的Type對象,那麼只需要用C#的typeof運算子,或者VB的GetType運算子作用於具體類型即可://C#Type t1 = typeof(TestType<int>);'VBDim t2 As
Time of Update: 2018-12-08
我想我不用做太多自我介紹。我就是Ninputer,部落格堂的裝配腦袋。在這裡我起了另一個暱稱——拆卸腦袋。我已進入這個貼新Post的介面就被震驚了。這麼方便,這麼多功能……沒有用過部落格堂的人根本不知道舊社會的Blog是什麼樣的(開個玩笑,其實開心也忙,沒那麼多功夫維護)我本來就創作熱情不高,時間也比較少,可能沒有時間維護這個Blog。但這裡這麼先進,實在讓我流連忘返。我來試試這裡貼代碼的功能吧,假裝這是一個技術文章,好堂而皇之上首頁。 這是Visual
Time of Update: 2018-12-08
很早就開始VBF的設計,在經曆開發和調整了兩個月的時間後,VBF的第一個BETA版終於和大家見面了!我是從前一階段部落格園上較為流行的動態語言討論上獲得靈感。我主要不是想寫一個動態語言,而是發現很多動態語言共有的特徵——不同程度地支援函數式編程(Functional Programming,FP)。這是一種顯著不同於命令式編程(目前的VB,和C#均為命令式程式設計語言,面向過程和物件導向也是命令式編程範式的擴充)的編程範式。它講究組合、高階函數和延遲計算。在純粹的FP語言(Lisp,
Time of Update: 2018-12-08
在談到動態語言與靜態語言的區別時,有一句很經典的話:Static typing when possible, dynamic typing when needed。Visual Basic支援後期綁定和動態標識符,因此完全可以按照對象的運行時類型進行操作。只是後期綁定或動態標識符缺乏對參數或傳回值類型的約束,僅僅按照成員的名稱進行操作。舉一個例子:在靜態篇我們介紹過匿名型別,假設有3個匿名型別的執行個體(Tuple):Dim a = New { Name := "Robbins", Age :=
Time of Update: 2018-12-08
不要驚訝,每個PDC上都會有微軟最新產品的前瞻,所以在Visual Basic 2005發布以前看到Visual Basic 9.0的訊息就是可以理解的了。Visual Basic 9.0 (codename Visual Basic Orcas)將隨下一個Visual Stduio主要版本(9.0,Orcas)一起發布,但是微軟很早就開始了新語言特性的規劃,在今天(PST 9月13日)召開的PDC大會上,使用者不僅可以領略到新一代Visual Basic