2012年7月27日 星期五

要怎麼學物件導向設計?

這篇文章我想寫一下,我覺得學物件導向應該要學的東西。

先記下來,增加記憶

好~在學物件導向之前一定要先知道,什麼是類別,什麼是物件?

類別(Class):
在文章或是書上寫的類別是一種藍圖,一種設計圖,一種屬於抽象的概念,他是一個不屬於實體的東西,但他適合被拿來作參考。

物件(Object):
他是一種實體的東西,看的到,摸的到,生活周遭所看的到的東西,都是屬於物件,是一個真實存在一個位置,可以拿來被使用。

以現實生活方面來說類別是屬於一種設計圖,而設計出來的東西稱為物件,例如汽車,房子..

以程式碼來說類別是不存在真實記憶體的,換句話說物件是存真實記憶體,而物件也會有一個地址在。


如果類別及物件有個概念之後,接下來我們進入正題!

很多書上都會說物件導向的優點,那那些優點到底是怎麼來的?
我先來說一下他的優點有哪些,這網路的文章很多,找一下都會知道
 1.資料隱藏
 2.重複使用
 3.減少專案開發時間
 4.程式碼維護容易
 5........

這些優點也很常聽到,可是為什麼物件導向會有這些優點呢?
說到這裡就必須先了解~繼承、封裝、抽象、介面、多型

以剛剛優點例子來說,資料隱藏是屬於封裝的特性,重複使用是屬於繼承
那減少專案開發時間及程式碼維護容易是包括所有特性

但是說真的,一個以物件導向開發的專案,並不容易,而且會更耗費時間,
那奇怪了,剛剛優點不是說可以減少專案開發時間嗎?
為什麼跟這裡產生矛盾,以剛剛優點來說,其實是指如果下一份專案跟上一份專案是相同的,這時候你可以直接繼承以前的專案,並開發新的專案,所以這裡指的優點是在說以後的結果。


繼承、封裝、抽象、介面、多型
這些是學物件導向設計前必須學的東西,雖然不保證這些學完就一定會
,但是這些不學就一定不會 。

如果以上有錯誤的地方,都可以留言在文章裡面
謝謝!


 





2012年6月3日 星期日

注意:dateTime在簡體跟繁體的系統會讀取到不同格式

我在我的電腦上寫的一個工具,

裡面會去判斷時間比對大小

可是把這程式搬去簡體的系統卻發生錯誤,

仔細檢查了一下,原來window裡面會有預設的時間格式

像我的window7裡面格式是設定成





 那在簡體的系統我想應該是預設是1900-00-00,

既然知道問題了,我又改了一下工具,

我把時間格式都改成date.ToString("yyyy-MM-dd HH:mm:ss"),

轉型的話就是Convert.ToDateTime("yyyy-MM-dd HH:mm:ss");

讓他不管在哪個系統都可以做日期的比較。







2012年3月19日 星期一

c# 判斷本機電腦是32位元還是64位元(不是.net4.0)

.NET Framework 4裡面已經有實做判斷32或64的類別庫了!
但是在3.0以下並沒有實做這類別,不過還是有辦法解決!
以下是在大陸的網站找到的範例:來源網址http://myext.cn/csharp/21258.html



32bit OS64bit OS
32bit CPUAddressWidth = 32N/A
64bit CPUAddressWidth = 32AddressWidth = 64



可以用下面的C#代码得到AddressWidth的值
(注意需添加引用System.Management)
public static string Distinguish64or32System() { try { string addressWidth = String.Empty; ConnectionOptions mConnOption = new ConnectionOptions(); ManagementScope mMs = new ManagementScope("\\\\localhost", mConnOption); ObjectQuery mQuery = new ObjectQuery("select AddressWidth from Win32_Processor"); ManagementObjectSearcher mSearcher = new ManagementObjectSearcher(mMs, mQuery); ManagementObjectCollection mObjectCollection = mSearcher.Get(); foreach (ManagementObject mObject in mObjectCollection) { addressWidth = mObject["AddressWidth"].ToString(); } return addressWidth; } catch (Exception ex) { Console.WriteLine(ex.ToString()); return String.Empty; } }
在.net4.0裡面只需要使用
  System.Environment 裡面的
Is64BitOperatingSystem判斷目前作業系統是否為 64 位元作業系統。
就可以搞定了

2012年1月9日 星期一

MSSQL的所有exception

在資料庫裡面select這段語法

SELECT *
FROM master.dbo.sysmessages
裡面會顯示所有error