網頁

搜尋此網誌

2009年4月9日 星期四

C# 程式語言

C#(念做 c sharp)此篇記錄一些常遺忘的語法,藉由此文章記憶,順便提供大家參考,我的參考書籍是:Beginning Visual C# 2005 ,Wrox (Wiley Publishing Inc.),那時候買好像1400台幣,但是Wrox的書都滿不錯,有寫到程式設計的精神,不只是參考書,更是學習用書。加上最近在研究"大話設計模式",也需要好好review一下這個語言!

此外,也可以參考MSDN的「C# 程式設計手冊」:http://msdn.microsoft.com/zh-tw/library/67ef8sbd.aspx

C#本身是OOP的語言,何謂物件(object)呢?簡單來說,物件也是一種資料型態。那什麼是資料型態呢?資料型態就是"資料的型態"(有講跟沒講一樣...這樣下去說不完啊!),物件的製作藍圖則是類別(class),程式中所使用的則是物件的實體(instance)

C#的程式是大小寫區分(case-sensitive),所以命名跟使用要注意!命名慣例可以參考「命名方針http://msdn.microsoft.com/zh-tw/library/ms229002.aspx,命名規範有兩種,一個是PascalCase,另一個是camelCase,差別在於首字有沒有大寫,相同處為字與字之間都是大寫的,書中建議變數用camelCase。(如果去Google一下,可以發現這定義可能不太一樣!camelCase還有分upper camel case和lower camel case兩種...)

成員定義(member definition)

先介紹存取修飾詞(Access Modifiers),有四個關鍵字:(再加上一個 static,但static和四個意義不同,另外獨立出來說明),參考MSDN:http://msdn.microsoft.com/zh-tw/library/wxh6fsc7.aspx
  • public
  • private
  • internal
  • protected
  • 混合用法protected internal
定義類別(class)、欄位(field)屬性(property)方法(method),這裡注意欄位和屬性的差異,使用上感覺他們很類似,其實之中有差異!

public class MyClass//類別
{
public int MyInt;//欄位
private int myint;
public int MyIntPro//屬性
{
get{ return myint; }
set{ myint=value; }
}

public void MyMethod//方法
{
//方法的程式碼...
}
}

命名規範(MSDN都是建議PascalCase)
  • 類別=PascalCase
  • 欄位=PascalCase
  • 屬性=PascalCase
  • 方法=PascalCase

靜態(static):可以用在兩個地方,靜態類別靜態類別成員(包含欄位、屬性、方法)。靜態類別不需實體化就能使用,而靜態類別成員則是"共用"的概念,不管實體物建有多少個,只會有一個成員存在,另外,使用靜態類別成員可以不需要有實體類別。

其他OOP的技術,上述為基礎的OOP程式語法,如果需要更進一步的使用OO,可以利用下列關鍵字搜尋MSDN獲得資訊:
  • Interfaces介面
  • Inheritance繼承
  • Polymorphism多型
  • Relationships between objects物件之間的關係
  • Operator overloading運算子多載
  • Events事件
  • Reference versus value types參考與值
其他注意事項:
  • 字串(string)是用雙引號「"」(double quotation),字元是用單引號「'」(single quotation)。如果字串不加入逸出字元「\",\',\\之類的」(escape sequence)的話,可以使用逐字翻譯字元「@」(verbatim)。
  • 函式(function)當中,如果需要傳址(reference)的方式,使用關鍵字「ref」,或者使用關鍵字「out」,皆可達到功能,為使用實有些許差異。
  • 參數(parameter)引數(argument)是不一樣的意義。函式定義時所使用稱為參數(parameter),當我們寫程式的時候,會去呼叫一個函式或方法,這時候稱為引數(argument)。

沒有留言:

張貼留言

熱門文章