DAY 28 System

System

其實跟 System 沒有太大關係,只是這個系列該收尾了,能講的觀念基本上都講完了,剩下的就是一些你沒用過甚至不曉得,但都附在程式裡的內容了,例如 I/O 的操作,簡單的建立一個 txt 檔,並讀寫該檔案,或者使用正規表示法,來擷取字串中符合的內容。當然還有很多很多的東西,都可以有事沒事看看官方的文件,當作字典一樣去看,或者等哪天有需求再去 GOOGLE 都可以。

既然是系列文的一篇,當然不能隨便帶過,所以就上述兩個內容,我們來簡單的使用吧。

I/O

要在程式所屬的資料夾內產生一個檔案,那我們就需要知道程式碼的位置。

所以第一步 GOOGLE C# 程式路徑 然後我找到C#取得執行程式所在的路徑方法 @ 鴨爸的隨手寫寫 :: 痞客邦 ::,像我一開始說的 C# 已經存在很久很久了,幾乎沒有找不到的答案。

然後 GOOGLE C# 讀寫文字檔,就可以找到官方的文件,複製貼上修修改改一下,很容易就可以讀懂該如何撰寫了,寫程式就是這麼簡單。

所以程式就會長這樣

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
using System;
using System.IO;

namespace demo {
class Program {
static void Main (string[] args) {
string path = Directory.GetCurrentDirectory ();
string filename = path + "\\newfile.txt";
using (StreamWriter sw = new StreamWriter (filename)) {
sw.WriteLine ("Hello World!!");
}
using (StreamReader sr = new StreamReader (filename)) {
string line;
while ((line = sr.ReadLine ()) != null) {
Console.WriteLine (line);
}
}
}
}
}

簡單的產生一個在程式執行目錄內的 newfile.txt 檔案,並且依行讀取內容,當然還有更多更多設定沒有細說。

正規表示法

一樣去 GOOGLE 正規表示法就可以了,等你了解正規表示法是做什麼後,我們便可以來使用。

GOOGLE C# 正規表示法 會找不到官方文件,因為官方將他稱為規則運算式,所以我通常都是用英文去下關鍵字,中文往往有太多翻譯。所以改以 C# Regex 就可以找到官方文件,

然後程式會變成

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
using System;
using System.Collections.Generic;
using System.Text.RegularExpressions;

namespace demo {
class Program {
static void Main (string[] args) {
Regex rx = new Regex (@"M[a-zA-Z]+");
var memberName = new List<string> () {
"Mio",
"Miffy",
"Lulu",
"NekoSan",
"MooDoo",
};
foreach (var name in memberName) {
if (rx.IsMatch (name))
Console.WriteLine (name);
}
}
}
}

只印出 M 開頭的成員名稱,在寫正規表示法時,我都會借助 RegExr: Learn, Build, & Test RegEx 這個網站檢查語法正確性,當然很多的規則都可以 GOOGLE 到,如常見的信箱驗證就有很多種寫法了。

一些小結論

今天講了當專案建立時都有的 System 的內容,當你今天覺得不夠用時,明天會介紹 nuget 是什麼與如何使用,幫助你找到更多的程式內容,學習沒有結束的一天,而這系列文只是一個開始。感覺這句應該放 30 天的 XD ,那麼當天就再講一次吧,畢竟這很重要,學海無涯。

感謝閱讀。

參考連結
System Namespace | Microsoft Docs
C#取得執行程式所在的路徑方法 @ 鴨爸的隨手寫寫 :: 痞客邦 ::
StreamWriter Class (System.IO) | Microsoft Docs
StreamReader Class (System.IO) | Microsoft Docs
Regex Class (System.Text.RegularExpressions) | Microsoft Docs