亚洲乱码中文字幕综合,中国熟女仑乱hd,亚洲精品乱拍国产一区二区三区,一本大道卡一卡二卡三乱码全集资源,又粗又黄又硬又爽的免费视频

C#中@的用法總結(jié)

 更新時間:2014年08月22日 10:46:52   投稿:shichen2014  
這篇文章主要介紹了C#中@的用法總結(jié),非常重要的用法總結(jié),需要的朋友可以參考下

本文實例匯總了C#中@的用法,對C#程序設(shè)計來說有不錯的借鑒價值。具體如下:

一 字符串中的用法

1.學(xué)過C#的人都知道C# 中字符串常量可以以@ 開頭聲名,這樣的優(yōu)點是轉(zhuǎn)義序列“不”被處理,按“原樣”輸出,即我們不需要對轉(zhuǎn)義字符加上 \ (反斜扛),就可以輕松coding。如,

string filePath = @"c:\Docs\Source\a.txt" // rather than "c:\\Docs\\Source\\a.txt" 

2.如要在一個用 @ 引起來的字符串中包括一個雙引號,就需要使用兩對雙引號了。這時候你不能使用 \ 來轉(zhuǎn)義爽引號了,因為在這里 \ 的轉(zhuǎn)義用途已經(jīng)被 @  “屏蔽”掉了。如,

@"""Ahoy!"" cried the captain."  // 輸出為: "Ahoy!" cried the captain. 

這有點像SQL中的單引號常量處理方式:

DECLARE @msg varchar(100) 
SET @msg = ''Ahoy!'' cried the captain.' -- 輸出為: 'Ahoy!' cried the captain. 

3.@會識別換行符

其實這個特性,我不知道怎么描述,只是偶然發(fā)現(xiàn)的,先來看看下面的代碼:

string script = @" 
<script type=""type/javascript""> 
function doSomething() 
{ 
} 
</script>"; 

這段代碼在cs文件中寫js,結(jié)構(gòu)就很清晰了,正常情況我們是這樣coding的:

string script2 = "<script type=\"type/javascript\">function doSomething(){}</script>"; 

或者:

string script3 = 
"<script type=\"type/javascript\">" + 
"function doSomething(){ " + 
"}</script>"; 

通常我們會選擇后者,因為js代碼一般比較長,或者方法體很大,或者需要連接其他變量,這樣結(jié)構(gòu)比較清晰。

注意:如果“拼接”的次數(shù)很多,應(yīng)該考慮使用StringBuilder了,有助于提高性能。

還有一種場景,也很常見,在程序中拼接 SQL 語句,如

private const string SQL_INS_USER = @" 
INSERT INTO t_User([UserName], [Password], Email)  
 VALUES(@UserName, @Password, @Email)"; 

這樣就像寫存儲過程一般,保持相當高的代碼清晰度。然而,我們需要關(guān)注一個問題:字符串長度看下面的測試代碼:

private const string SQL_INS_USER1 = @" 
  INSERT INTO t_User([UserName], [Password], Email)  
 VALUES(@UserName, @Password, @Email)"; 

private const string SQL_INS_USER2 = @"INSERT INTO t_User([UserName], [Password], Email)  
 VALUES(@UserName, @Password, @Email)"; 

private const string SQL_INS_USER3 = @"INSERT INTO t_User([UserName], [Password], Email) VALUES(@UserName, @Password, @Email)";  

static void Main(string[] args) 
{ 
  Console.WriteLine(SQL_INS_USER1.Length);  // 126  
  Console.WriteLine(SQL_INS_USER2.Length);  // 112 
  Console.WriteLine(SQL_INS_USER3.Length);  // 86 
} 

這里可以看到三個字符串長度分別相差了,14=126-112和26=112-86,注意觀察了,在代碼編輯器中,SQL_INS_USER1 中第一個換行符號之后,我縮進13個空格(INSERT之前),而
SQL_INS_USER2 中第一個換行符號之后,我縮進25個空格(VALUES之前),
那么,加上一個換行符,剛剛好 14和26

如此編寫代碼,雖然提高了代碼的清晰度和簡便性,卻無行中帶來了另一個問題:字符長度!
很多場景下我們希望字符串越短越好,如,通過ADO.NET 發(fā)送 SQL 語句給數(shù)據(jù)庫執(zhí)行。
所以還是慎用之!

二 標識符中的用法

在 C#  規(guī)范中, @  可以作為標識符(類名、變量名、方法名等)的第一個字符,以允許C# 中保留關(guān)鍵字作為自己定義的標識符。

如下代碼:

class @class 
{ 
  public static void @static(bool @bool) { 
   if (@bool) 
     System.Console.WriteLine("true"); 
   else 
     System.Console.WriteLine("false"); 
  }   
} 
class Class1 
{ 
  static void M() { 
   cl\u0061ss.st\u0061tic(true); 
  } 
} 

注意,@雖然出現(xiàn)在標識符中,但不作為標識符本身的一部分。
因此,以上示例,定義了一個名為 class 的類,并包含一個名為 static 的方法,以及一個參數(shù)名為了 bool 的形參。

這樣,對于跨語言的移植帶來了便利。因為,某個單詞在 C#  中作為保留關(guān)鍵字,但是在其他語言中也許不是。

相關(guān)文章

  • C# 獲取硬件參數(shù)的實現(xiàn)方法

    C# 獲取硬件參數(shù)的實現(xiàn)方法

    這篇文章主要介紹了C# 獲取硬件參數(shù)的實現(xiàn)方法的相關(guān)資料,希望通過本文能幫助到大家,讓大家實現(xiàn)這樣的功能,需要的朋友可以參考下
    2017-10-10
  • c#中虛函數(shù)的相關(guān)使用方法

    c#中虛函數(shù)的相關(guān)使用方法

    若一個實例方法聲明前帶有virtual關(guān)鍵字,那么這個方法就是虛方法。
    2013-02-02
  • C#調(diào)用Python模塊的方法

    C#調(diào)用Python模塊的方法

    這篇文章主要為大家詳細介紹了C#調(diào)用Python模塊的方法,文中示例代碼介紹的非常詳細,具有一定的參考價值,感興趣的小伙伴們可以參考一下
    2017-05-05
  • C#實現(xiàn).net頁面之間傳值傳參方法匯總

    C#實現(xiàn).net頁面之間傳值傳參方法匯總

    這篇文章主要介紹了C#實現(xiàn).net頁面之間傳值傳參方法,實例匯總了幾類常見的傳值傳參的方法,非常具有實用價值,需要的朋友可以參考下
    2014-10-10
  • C#將圖片存放到SQL SERVER數(shù)據(jù)庫中的方法

    C#將圖片存放到SQL SERVER數(shù)據(jù)庫中的方法

    這篇文章主要介紹了C#將圖片存放到SQL SERVER數(shù)據(jù)庫中的方法,以實例形式較為詳細的分析了C#保存圖片到SQL Server數(shù)據(jù)庫的具體步驟與相關(guān)技巧,具有一定參考借鑒價值,需要的朋友可以參考下
    2015-09-09
  • Entity?Framework映射TPH、TPT、TPC與繼承類

    Entity?Framework映射TPH、TPT、TPC與繼承類

    這篇文章介紹了Entity?Framework映射TPH、TPT、TPC與繼承類,文中通過示例代碼介紹的非常詳細。對大家的學(xué)習或工作具有一定的參考借鑒價值,需要的朋友可以參考下
    2022-06-06
  • 簡單介紹三層架構(gòu)工作原理

    簡單介紹三層架構(gòu)工作原理

    這篇文章介紹了三層架構(gòu)的工作原理,二層與三層架構(gòu)的區(qū)別,三層架構(gòu)的優(yōu)劣勢。對大家的學(xué)習或工作具有一定的參考借鑒價值,需要的朋友可以參考下
    2021-12-12
  • C# 當前系統(tǒng)時間獲取及時間格式詳解

    C# 當前系統(tǒng)時間獲取及時間格式詳解

    這篇文章主要介紹了C# 當前系統(tǒng)時間獲取及時間格式詳解的相關(guān)資料,這里提供代碼實例,幫助大家學(xué)習參考,需要的朋友可以參考下
    2016-12-12
  • C#實現(xiàn)歸并排序

    C#實現(xiàn)歸并排序

    這篇文章介紹了C#實現(xiàn)歸并排序的方法,文中通過示例代碼介紹的非常詳細。對大家的學(xué)習或工作具有一定的參考借鑒價值,需要的朋友可以參考下
    2022-04-04
  • C#屬性(Attribute)用法實例解析

    C#屬性(Attribute)用法實例解析

    這篇文章主要介紹了C#屬性(Attribute)用法實例解析,需要的朋友可以參考下
    2014-08-08

最新評論