用法總結一

2021-08-09 19:50:03 字數 2300 閱讀 1952

一 字串中的用法

1.學過c#的人都知道c# 中字串常量可以以@ 開頭聲名,這樣的優點是轉義序列「不」被處理,按「原樣」輸出,即我們不需要對轉義字元加上 \ (反斜扛),就可以輕鬆coding。如,

string filepath = @"c:\docs\source\a.txt"    //rather than "c:\\docs\\source\\a.txt"

2.@會識別換行符

其實這個特性,我不知道怎麼描述,只是偶然發現的,先來看看下面的**:

string script = @"";

這段**在cs檔案中寫js,結構就很清晰了,正常情況我們是這樣coding的:

string script2 = "";

或者:

string script3 =  "";
通常我們會選擇後者,因為js**一般比較長,或者方法體很大,或者需要連線其他變數,這樣結構比較清晰。

注意:如果「拼接」的次數很多,應該考慮使用stringbuilder了,有助於提高效能。

還有一種場景,也很常見,在程式中拼接 sql 語句,如:

private const string sql_ins_user = @"
insert into t_user([username], [password], email)
values(@username, @password, @email)";

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

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)
這裡可以看到三個字串長度分別相差了,14=126-112和26=112-86,注意觀察了,在**編輯器中,

sql_ins_user1 中第乙個換行符號之後,我縮排13個空格(insert之前),而sql_ins_user2 中

第乙個換行符號之後,我縮排25個空格(values之前),那麼,加上乙個換行符,剛剛好 14和26

如此編寫**,雖然提高了**的清晰度和簡便性,卻無行中帶來了另乙個問題:字元長度!

很多場景下我們希望字串越短越好,如,通過ado.net 傳送 sql 語句給資料庫執行。

所以還是慎用之!

二 識別符號中的用法

在 c#  規範中, @  可以作為識別符號(類名、變數名、方法名等)的第乙個字元,以允許c# 中

保留關鍵字作為自己定義的識別符號。

如下**:

class @class
}
class class1    }

注意,@雖然出現在識別符號中,但不作為識別符號本身的一部分。

因此,以上示例,定義了乙個名為 class 的類,幷包含乙個名為 static 的方法,以及乙個引數名為了 bool 的形參。

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

DBGridEh用法總結一

dbgrideh用法總結一 一直用dbgrideh,最近才想把使用情況做一記錄,以便檢視。一 過濾視窗漢化。解決辦法 修改ehlibconsts.pas這個檔案即可實現。二 過濾功能 要實現過濾功能需要做如下設定。dbg.stfilter.visible true 讓過濾顯示出來 dbg.stfil...

typedef用法總結 一

1.常規變數型別定義 例如 typedef unsigned char uchar 描述 uchar等價於unsigned char型別定義 uchar c宣告等於unsigned char c宣告 2.陣列型別定義 例如 typedef int array 2 描述 array等價於 int 2 ...

Docker用法總結(一)Dockerfile

最近在把伺服器上的應用盡量docker化,踩了不少坑 不過也正好學習docker和docker compose的用法。此篇文章記錄docker常用命令 使用方法,用於備忘。主要是dockerfile和docker compose.yml兩個檔案,這倆的關係,簡單的講 映象一般只生成一次,而容器則可以...