2013年7月31日 星期三

[C#]String的應用---字串的搜尋、去除、添加、取得、刪除

繼上次[C#]基本(5) --- 字串(元)切割[C#]String的應用---字串的比對之後,
小弟決定把string常應用的全部都寫個小範例,
廢話不多說請看以下範例!!!

Blogger QR-Code

Blogger變成具備有QR Code的功能,
而且並非只是固定的QR Code,
隨著點選不同文章時,
將會得產生出不同的QR Code(動態QR Code),
小弟真的覺得太方便。

[C#]String的應用---字串的比對

這是非常常見的小小技巧,
小弟最常使用的方式,
就是把兩個要互相比對的字串都轉成大寫或是小寫,
最近看到其他不同的方式,
就是透過string.Compare進行判斷,
優點就是即使大小寫不同也可以辨識(參考MSDN)。

2013年7月19日 星期五

[C#]List.add() 陷阱

C# List 真的是很好用,
它會自動擴充記憶體位置(應該說它本身就有固定的記憶體位置),
但它也是有陷阱...
這個陷阱是小弟跟同事在開發程式時發生的,
故事是這樣的(長篇短說),
在使用List.add(object)時,
所以不管add多少次List內容都是一樣的!!!
原來上述add的方式是call by reference
以上應該使用call by value 才對,
改成List.add(new object)才是正解喔!!!
PS:(Call By Value/Reference 的差異)

[C#]基本(7) --- call by value/reference

Call by value
傳遞參數時,會將此參數複製再傳給方法, 這個複製參數稱為虛擬參數(formal parameter)。 虛擬參數與實際參數(actual parameter)位於不同的記憶體位置。 所以call by value需要額外的記憶體空間。
Call by reference
虛擬參數(formal parameter)與實際參數(actual parameter)位於相同的記憶體位址。 語法:多個ref或out

2013年7月18日 星期四

[C#]基本(6) --- override(複寫)

C# 中的每一個類別與結構 (Struct) 都會隱含繼承 Object 類別。
所以,每一個Object都會有 ToString()的方法。
當建立自訂的類別或結構 (Struct) 時,
應該覆寫 ToString(),方便提供與型別相關的資訊。

2013年7月17日 星期三

[C#]基本(5) --- 字串(元)切割

在處理資料很常用到這個技巧,
利用「,」去區隔兩個欄位,
當然大家一定都知道最基本的切割(string.Split),
但如果遇到字串中有多個字元需切割?
繼續使用string.Split?
答案是可以的,
缺點就是會佔記憶體位置,
既然是切割當然要乾淨一點,
畢竟都是從字串(string)轉字元(char)。

2013年7月16日 星期二

標籤/搜尋文章只顯示標頭

Blogger中搜尋或分類標籤,
通常都會列出標頭及一點點內文,
這樣實在很難迅速的找到某一篇文章。
如果能夠只出現標題列表,
再點選你要看的文章,
操作上應該會比較方便。

[C#]基本(4) --- Console 顯示 MessageBox

小弟第一次寫GUI的程式是VB.Net,
之後迷上了C#...
所以看到Dos視窗很陌生(我不能當駭客任務的主機了ToT)
雖然知道Console.WriteLine一樣可以顯示訊息,
之前Dos 視窗控制變更顯示的字顏色,
但是還是不夠清楚...(畢竟Console程式跑很快...訊息一下就被洗掉了)
這時候使用MessageBox剛剛好~
必須經過按鈕確認才會進入下一個程序(Process)
這也是小弟想述說的重點...

2013年7月15日 星期一

[C#]基本(3) --- public, protected, private, internal, protected internal

private:私有型別,成員只能在自身類別內存取(只限定在類別大括號內進行存取)。
public:對任何類別和成員都無存取限制(其他命名空間也可)。
internal:只有同一組件的類別可以進行存取。
protected:保護型別,成員能在自身類別和被繼承的子類別內進行存取。
protected internal:不管是否在相同的命名空間中,該成員能在自身類別和被繼承的子類別內進行存取和相同命名空間的類別(不一定是子類別)。

2013年7月11日 星期四

Visual Studio 2012 無法啟動 IIS Express Web 伺服器

之前小弟的同事遇到這個問題,
不過當時同事的電腦重灌...
所以就沒繼續追究下去(重灌以後就沒事了),
過了不久的某一天早上,
小弟的電腦也出現一樣的問題,
F5按下去後,只看到滑鼠游標一直在做讀取的動作,
然後就跑出下圖的警告...
難道說...老天爺再指示我要重灌了!?
事實上有解決的方法,方法如下:

2013年7月10日 星期三

[C#]基本(2) --- Dos 視窗控制

C/C++執行程式時都會跑出黑黑的Dos視窗,
在C#開新專案一樣也是有的,
(雖然C#當中大多都是開發GUI介面為主)
在開新專案選擇主控台應用程式,如下圖:
新增主控端應用程式
以上都不是小弟要說的重點,
重點是希望Dos視窗可以不要哪麼死板板,
老是黑底白字,萬一有些資訊是非常重要...
I want some Special(EX:把字變成紅色的)。

螢幕錄影工具 LICEcap

前言

常看到許多部落格分享動態教學,如 .git 、avi ⋯⋯等等,當然有時動態教學感受會比靜態的好很多,不管是動態圖檔或是影像檔概念皆是把一連串的照片快速撥放,至於如何製作動態的.gif檔參考:GIFup.com,製作過程 參考:痞客邦

不過如果要分享資訊要一直拍照再去製作真的很辛苦,於是小編查了許多螢幕錄影程式,於是決定了使用「LICEcap」。
下面將介紹小編如何在 Windows 安裝與使用

2013年7月4日 星期四

[C#]基本(1) --- 參考及撰寫DTO與自行增加註解

原本是想將這些超基本東西分開,
但是最後還是決定一鼓作氣寫在同一篇
不知道效果好不好就是了。
首先介紹「參考」,雖然這個動作非常普通但對於人家寫好的.dll檔看得到用不到真的會很痛心,以下使用的參考亦可用在別人寫好的.dll

PS.[dll、lib、h 的差別] 參考
      dll = 屬於動態鏈結,不包含內部Code且在執行檔進行靜態加載
      lib = 屬於靜態鏈結包含內部Code且在執行檔進行鏈結
      h   = 標頭檔,可將dll與lib Method名稱中聲明

接著撰寫一個簡單的DTO,並且賦予註解,最後說明註解的好處
以下小弟我~就利用上一次的DTO寫個小小範例

2013年7月1日 星期一

Visual Studio 擴充套件 程式碼虛線

前言

通常為了程式的閱讀性
會透過IDE縮排
但是縮排後階層過多反而讓人更 混亂
該如何解決呢 ?