C#基本語法簡介

作者: to be a talent  來源: 博客園  發布時間: 2009-05-19 10:34  閱讀: 5313 次  推薦: 0   原文鏈接   [收藏]  

一、系統數據類型和C#簡化符號

  和各任何編程語言一樣,C#定義了一組內建數據類型。每種類型都有對應的C#關鍵字、取值范圍和作用,如系統類型中表示真實的或者虛假的類型為 System.Boolean,C#簡化符號為bool,范圍true或false;又如uint對應的系統類型是System.UInt32,范圍 0~4294967295,代表一個無符號的32位數。其中bool是遵循CLS(公共語言規范),而uint則不遵循CLS(符合CLS的.NET代碼可以被任何托管編程語言使用,不止是C#,還有VB.NET和托管C++等)。

  C#內建的系統型有15個,請查看.NET Framework 3.5文檔來熟悉它們。

二、變量聲明和初始化。

  如果要聲明一個數據類型作為變量,可以通過在變量名之前指定類型來實現,還可以使用全名分配數據類型。如:

bool mybool = false;

string myString;

myString = "This is a string.";

System.Int32 i1 = 0, i2, i3 = 56;

  在使用變量前必須先對變量賦值,否則會收到一個編譯錯誤(如上文加上" i2 = i2 +5 ",是不能通過編譯的)。內建數據類型還支持構造函數(對于構造函數,后面章節會有介紹),這不允許我們使用new關鍵字來創建變量,它將變量自動設置為其默認值:
int i4 = new int(); // i4設置為0。

i4 = i4 + 5 ;         // i4現在的值為5。

三、數據轉換

  不同類型的數據是可以轉換的。

  按轉換前后的數據的位數變化可分為窄化轉換和寬化轉換:當一種類型的值轉換為大小相等或更大的另一類型時,則發生寬化轉換(也叫擴大轉換);當一種類型的值轉換為較小的另一種類型時,則發生窄化轉換(也叫收縮轉換)。寬化轉向不會導致數據丟失,因此允許隱式進行。但窄化轉換因為有數據丟失的風險(稱為溢出),將導致編譯錯誤。如果希望通知編譯器我們想要處理窄化運算引起的可能的數據丟失,就必須使用C#強制轉換運算符()來進行顯式強制轉換:
byte myByte = 0;

int myInt = 200;

myByte = (byte)myInt;

  如果我們在構建一個不能接受數據丟失的應用程序,C#提供的checked關鍵字將確保數據丟失肯定會被檢測到。

myByte = checked(byte)myInt;

  如果發生數據丟失,將發生一個運行時異常(對于異常,后面將深入討論)。另外,C#編譯器還提供/checked標志,可以設定項目級別的溢出檢測。與checked相對的還有unchecked關鍵字,請查閱相關文檔進行了解。

四、運算符

  C# 提供大量運算符,這些運算符是指定在表達式中執行哪些操作的符號。通常允許對枚舉進行整型運算,例如 ==、!=、<、>、& lt;=、>=、^、&、|、~、++、-- 和 sizeof()。此外,很多運算符可被用戶重載,由此在應用到用戶定義的類型時更改這些運算符的含義。各運算符的用法及優先級,請查閱相關文檔。

  新增的運算符??:如果 ?? 運算符的左操作數非 null,該運算符將返回左操作數,否則返回右操作數。

  另一個新增的Lambda運算符(=>)會在后面章節中講述。

五、流程控制

  1.C#迭代結循環構

  除了基本的for循環,while循環及do/while循環,C#還允許通過使用foreach關鍵字遍歷數組中的所有項:
string[] carTypes = {"Ford","BMW","Yugo","Honda"};

foreach(string c in carTypes)

Console.WriteLine(c);


  2.C#條件結構

  if/else語句。C和C++的程序員要注意,C#中的if/else語句只能作用于布爾表達式,不能用于諸如-1、0這樣的值。

  switch語句。C#switch語句一個不錯的特性是,除了數值數據之處,我們還可以運算字符串數據:

 

 

    static void ExecuteSwitchOnString()
    {
      Console.WriteLine("C# or VB");
      Console.Write("Please pick your language preference: ");

      string langChoice = Console.ReadLine();
      switch (langChoice)
      {
        case "C#":
          Console.WriteLine("Good choice, C# is a fine language.");
          break;
        case "VB":
          Console.WriteLine("VB .NET: OOP, multithreading and more!");
          break;
        default:
          Console.WriteLine("Wellgood luck with that!");
          break;
      }
    }

 

0
0
 
標簽:CSharp
 
 

文章列表

arrow
arrow
    全站熱搜
    創作者介紹
    創作者 大師兄 的頭像
    大師兄

    IT工程師數位筆記本

    大師兄 發表在 痞客邦 留言(0) 人氣()