2013-10-22 25 views
6

我想使用String方法IndexOfAny來檢查一個字符是否存在於指定的字符串中。在VB.NET字符數組中添加「c」是做什麼的?

例子我在網上找到了使用IndexOfAny方法的方法,在使用VB.NET時在字符數組中的每個字符之後都包含一個「c」。但是,當我在VB.NET中查看簡單字符數組的示例時,在每個字符後面都沒有看到任何這樣的「c」。 「c」是做什麼的?它是可選的嗎?

Dim s1 As String = "Darth is not my father." 
' Find the first index of either "x" or "n" 
Dim i1 As Integer = s1.IndexOfAny(New Char() {"x"c, "n"c}) 

回答

8

這是System.Char類型文字的後綴。因此,

Dim foo As Char = "x"c 

將編譯(當Option Strict設置爲On或Off時)。沒有c,它將被解釋爲一個字符串。有關VB.NET中文字後綴的更多信息,請查看MSDN頁面「Constant and Literal Data Types」。

+0

因此,如何走到這一步的工作(或它正在做什麼); Dim myArray()As Char = New Char(){「s」,「a」,「m」} – n00b

+0

@ n00b因爲有[Option Strict](http://stackoverflow.com/questions/2454552/whats-an -option-strict-and-explicit)設置爲Off。如果您將其設置爲開,它將不會編譯。當嚴格選項關閉時,VB.NET編譯器會嘗試「修復」這些東西,以使它們自動工作。大多數VB.NET開發人員將Option Strict設置爲On,因此這就是爲什麼您會在示例中以這種方式看到他們使用它的原因。 – vcsjones

2

其實剛剛找到答案。我看到我收到了一個答案,但爲了進一步澄清,添加了這個答案。 Char類型是數字類型,而不是字符串類型。字符串「x」和「n」不是字符。由於此語句正在初始化一個Char類型的數組,所以不能只添加字符串文字。 'c'表示編譯器認爲這是作爲一個字符對待的,而不是一個字符字符串。

http://bytes.com/topic/visual-basic-net/answers/438712-character-array-question

+1

不,Char絕對不是數字類型。它可以隱式轉換爲數字,只會讓它像鴨子一樣呱呱叫。它不是一隻鴨子。這是一個值類型,不像String。只需要「c」,因爲Visual Basic從來沒有辦法直接編寫字符文字,沒有類似於C#中的單引號。 –

+1

漢斯是對的。由於計算機中的所有內容都是一個數字,因此Type指定如何解釋位的序列。 – dbasnett

相關問題