public :就是所有的人都可以直接存取
private :是只有在類別內部才可以存取
protected :差不多是在這兩者之間,比private寬鬆一些,但又沒有public那麼自在,只有在同一個類別內或是同一個package,或是繼承它的子類別可以自由取用
mutex(互斥):作用是在控制多執行緒,可以說是用來當排他(互斥)的概念,來避免多個user來執行同一支程式,如果Mutex中沒有其他Thread,就會直接往下執行,如果有的話則會等到其他Thread呼叫ReleaseMutex之後才能執行。
.waitone:回傳true或是false來表示有沒有成功進入Mutex
.Dispose :程式最後明確呼叫Dispose,讓GC知道該Mutex仍在使用,可加可不加
list(泛型):通常寫function時需要定義I/O的變數型態,那麼多個Function就要定義多個I/O,泛型就可以解決這個問題,縮短程式碼的編寫。
enum(列舉):是針對某資料片段只允許特定值的『資料型別(Type)』。
ex:private enum Function: int{i=0,x=1}
Directory(目錄):操作目錄用法,針對資料夾的目錄下做某些行為
.GetFiles(path),通常會再搭配SearchOption(搜尋目錄)
ex:string[] file2 = Directory.GetFiles(spRetryFTPConfig.DealDataPath, "FTPLIST.*", SearchOption.TopDirectoryOnly)
try-catch-finally:
try:要做的事情
catch:發生的例外
finally:不管正確或錯誤,都要執行。(通常用來釋放資源、紀錄最後處理時間等等)。
using陳述式:其實做法跟try差不多,但最重要的是會自己釋放資源,不用再另外寫。
indexof() :在字符串中?前向后定位字符和字符串;所有的返回值都是指在字符串的??位置,如?空??- 1
string test="asdfjsdfjgkfasdsfsgfhgjgfjgdddd";
test.indexof('d') =2 //?前向后 定位 d 第一次出?的位置
test.indexof('d',1) =2 //?前向后 定位 d ?第三?字符串 第一次出?的位置
test.indexof('d',5,2) =6 //?前向后 定位 d ?第5 位?始查,查2位,即 ?第5位到第7位;
Split:分割字元
string s = "abcdeabcdeabcde";
string[] sArray = s.Split('c');
ab
deab
deab
de
trim:刪除字串中所有空白字元
TrimStart()只刪除字串的頭部的空格。
TrimEnd()只刪除字串尾部的空格。
PadLeft:字串靠右,左補0
A="234"
B=A.PadLeft(6,'0');
000234
break:雖然這個用了幾百年,但是卻把它搞錯認為只跳出括弧
1.如果有迴圈就跳出迴圈
2.如果有switch就跳出switch
3.其餘跳出function
String: 會看到一個string = @"...",用法是逐字字串,其實就是為了可讀性啦!
Serializable[序列化]:
序列化,其实就是将对象的状态信息转换为可以存储或传输的数据形式。
比如有这样一个类
class User{
public string UserName;
public string Password;
}
我们可以把它的实例转换为这样的xml
<User>
<UserName>value</UserName>
<Password>value</Password>
</User>
可以认为这样就是序列化。
※當物件需要封送、遠端服務甚至是網路資料流都運用了序列化的技術,或是要將物件直接儲存到資料庫裡,也都需要序列化的技術。