不知讀者們有沒有遇到過如下的狀況? 假設你需要從某個 CSV 檔案中匯入資料; 我們已經知道每個欄位是什麼。然後你為這份資料建立了類別, 也為每一個需要的欄位建立了屬性。當然, 你也一定知道每一個欄位是第幾欄, 但是 Visual Studio 並不知道。你必須每次都去查, 才能知道哪個欄位是哪一欄。假設 CSV 檔案內容如下
[C#] 屬性中的屬性: 自訂 Attributes
- 7513
- 0
- .Net Programming
- 2015-09-07
不知讀者們有沒有遇到過如下的狀況? 假設你需要從某個 CSV 檔案中匯入資料; 我們已經知道每個欄位是什麼。然後你為這份資料建立了類別, 也為每一個需要的欄位建立了屬性。當然, 你也一定知道每一個欄位是第幾欄, 但是 Visual Studio 並不知道。你必須每次都去查, 才能知道哪個欄位是哪一欄。假設 CSV 檔案內容如下
在 C# 6.0 中新增了方便的 String Interpolation 的功能, 它能進一步將原本的 string.Format 功能簡化。我們現在就可以使用 Visual Studio 2015 來做測試...
在撰寫 Windows Form 程式時, 我們時常會在 app.config 中放入一些參數。如果把它們存放在 appSettings 區段中, 那麼我們就可以很方便地使用 ConfigurationManager.AppSettings["MyKey"] 取出。但是, 如果我們要放進去的資料稍為複雜一點, 操作起來就沒那麼直覺。例如, 我們可以將鍵值以 a-XXX, b-XXX 方式命名, 再使用字串處理方式分出群組。一般而言, 我們通常不會在 app.config 中存入大量資料, 也不會存入太複雜的資料 (否則你應該使用更適合的格式檔案, 例如 XML 或 JSON), 更不會進行大量且持續的存取, 所以上述做法是 OK 的。然而, 如果你和我一樣有奇怪的潔癖, 或許你也會覺得上述做法有點 low。我們就是要去找最有彈性的做法 (明明就用不到)...
時常寫 Windows Form 程式的朋友一定知道, 我們在 Windows Form 程式中一樣可以使用 Console.Write() 方法。這些訊息可以在 Visual Studio 中的「輸出視窗」裡看見。然而, Visual Studio 本身就有許多訊息顯示在輸出視窗裡, 所以我們時常有可能漏掉某些訊息沒看到, 或者需要不停地往回捲動, 才能找到。此外, 如果你希望這些訊息是能夠讓使用者看到的, 該怎麼辦? ...
我們都知道我們可以在 Console 程式中以 Console.WriteLine 和 Console.Write 輸出文字到一個命令視窗裡。但是不管是 Write 或者 WriteLine 方法, 文字的走向都是向右、向下的, 從來不會回頭。因此, 如果你的輸出文字太多, 就會需要捲頁; 如果超過差不多12頁以後, 它只會保留12頁(大約是288行左右), 更上方的文字通通會被截掉, 再也看不見了。有沒有辦法讓我們既看到輸出結果, 又能讓這些輸出的文字不要佔據那麼多空間呢...
App_Code 是一個 ASP.NET 網站專案的特殊子目錄。如果你的專案不是 Web Site 專案而是 Web Application 專案, 你並不需要、也不應該特別建立一個 App_Code 子目錄來存放你的程式碼 -- 除非是為了某種特殊的目的。例如, 如果你希望幫網站加入動態產生版本的功能的話, 那麼你可以建立 App_Code 子目錄 (在這裡都使用 Web Application 專案), 並且在這個子目錄下隨便建立一個如下的類別檔...
不知道是否我的查詢功力太差, 或者真的沒有人願意提供, 我在網路上找了老半天, 就是找不到一個可用的現成程式。那些現成的程式, 如果不是非 C# 語言, 就是欲言又止... 說真的, 這東西一點都不難, 只差要不要把資料打上去而已。既然找不到, 就自己寫吧...
在 C# 中 Enum 是一個純粹靜態的結構, 當你宣告了一個 enum, 那麼它的值就固定在那裡了, 你非得去更改它的定義, 才能看到內容項目的變更。那麼, 如果我們能把它的內容項目 (包括它的值) 變成動態的呢? 在接下去之前, 我必須先把它適用的情境清楚的描述一遍, 否則大家可能無法理解為什麼要這麼做...
最近在維護一個 C++ 專案,在迫不得已的情況下重新溫習了已經十幾年沒踫的指標 (Pointer)。而且,很不幸的,跟十幾年前一樣被搞得暈頭轉向 (在 C# 跟 VB 中根本不會有這種問題),所以只好花點時間把 C++ 指標相關重點摘錄起來供自已及有興趣的朋友們參考...
我要在這裡說明的所謂「集合型別」指的並不是泛指 System.Collections 命名空間下的各種型別, 而是特別指自從 .Net 3.5 之後才出現的 Sets (集合) 型別, 特別是 System.Collections.Generic.HashSet 與 System.Collections.Generic.SortedSet 這兩個實作 ISet 介面的類別。ISet 介面是專門針對集合作業而設計的, 它提供了幾個特別的方法...
本文將介紹 Enum 的基本原理與應用。