摘要:VB加入C#字串宣告(@"")
有寫過C#的朋友大概都知道,要在C#中輸入一段有斷行的字串或SQL時
都會使用「@」這個好用的符號。好處就是可以直接斷行
例如:
string test = @"
select * from tb
where c1 = 123"
但是在VB.NET就要很鱉腳用 「 & _ 」來斷行
例如:
dim test as string
test = "select * from tb" & _
"where c1 = 123"
如果行數一多,那可真是累死人不償命又無聊的工程
某天在黑暗執行緒的某一篇文章挖到了寶
使用VB.NET 2008內建的XML嵌入語法,來達成模擬C#的「@」
直接看下面的例子
01
02
03
04
05
06
07
08
09
10
11
12
13
14
15
|
Dim JS As String = <s><![CDATA[ <script type= "text/javascript" > jQuery(function ($) { $( '#@txtbox.ClientID@').datepicker({ rangeSelect: true, firstDay: 1, changeMonth: true, changeYear: true, showOn: 'both', buttonImageOnly: true, buttonImage: '@Context.Request.ApplicationPath@/Picture/calendar.gif' }); }); </script> ]]></s>.Value.Replace(vbLf, vbCrLf) |
由於預設的換行是vbLf,所以後面我加了Replace(vbLf, vbCrLf)
來把換行符號變成vbCrLf
那如果字串裡面有變數怎麼辦?
先把變數用@包起來,例如:@txtbox.ClientID@
之後再用Replace去把變數塞進去,例如:JS = JS.Replace("@txtbox.ClientID@", "AAAA")
看來一切都很完美了,不過還沒結束
當你在VS2010上使用時你會發現字串內的文字是接近白色的
這對老人家的眼力是很大的考驗
這時候可以進去選項裡面調整
選擇字型與色形,再挑選VB XML CData 區段,調整你想要顏色,按下確定
收工
以上是網友電腦茶包提供的寫法,只能算是變通的方法。每個變數不但要在內容用特定字串先存入,還要在return時再replace回來,個人覺得太過煩複,在還沒找到更好解法前,就先使用這樣的做法吧