C#基本語法


C# 是物件導向的程式設計語言。在物件導向程式設計方法中,程式由通過動作相互互動的各種物件組成。 物件可能採取的操作稱為方法。具有相同型別的物件認為是相同的型別,或者說是在同一個類。

例如,假設有一個Rectangle物件。 它有長度(length)和寬度(width)的屬性。 根據設計,它可能需要接受這些屬性的值,計算面積和顯示細節的方法。

下面我們來看看Rectangle類是如何實現上述功能,並以此學習 C# 的基本語法:

using System;
namespace RectangleApplication
{
   class Rectangle 
   {
      // member variables
      double length;
      double width;
      public void Acceptdetails()
      {
         length = 10.0;    
         width = 20.1;
      }

      public double GetArea()
      {
         return length * width; 
      }

      public void Display()
      {
         Console.WriteLine("Length: {0}", length);
         Console.WriteLine("Width: {0}", width);
         Console.WriteLine("Area: {0}", GetArea());
      }
   }

   class ExecuteRectangle 
   {
      static void Main(string[] args) 
      {
         Rectangle r = new Rectangle();
         r.Acceptdetails();
         r.Display();
         Console.ReadLine(); 
      }
   }
}

當編譯和執行上述程式碼時,會產生以下結果:

Length: 10.0
Width: 20.1
Area: 201

using關鍵字

任何 C# 程式中的第一個語句一般是:

using System;

using關鍵字用於在程式中包含名稱空間。程式可以包括多個using語句。

class關鍵字

class關鍵字用於宣告一個類。

C# 中的註釋

注釋用於解釋程式碼。編譯器忽略註釋中的任何內容。 C# 程式中的多行注釋以/*開始,並以*/結尾,如下所示:

/* This program demonstrates
The basic syntax of C# programming 
Language */

單行注釋由「//」符號表示。 例如,

}//end class Rectangle
// 另一個行注釋

成員變數

變數是用於儲存類的屬性或資料成員的資料。在前面的程式中,Rectangle類有兩個名為lengthwidth的成員變數。

成員函式

函式是執行特定任務的語句集合。類的成員函式在類中宣告。我們的範例類Rectangle包含三個成員函式:AcceptDetailsGetArea和Display

範例化類

在上述程式中,ExecuteRectangle類包含Main()方法,並範例化了一個Rectangle類的範例:r

識別符號

識別符號是用於標識類,變數,函式或任何其他使用者定義專案的名稱。 C# 中命名類的基本規則如下:

  • 名稱必須以字母開頭,後面可以有一系列字母,數位(0 - 9)或下劃線(_)。 識別符號中的第一個字元不能為數位。
  • 它不能包含任何嵌入的空格或符號,如:?, -, +, !,@,#, %, ^, &, *, (, ), [, ], {, }, ., ;, :, ", ',/\。但是,可以使用下劃線(_)。
  • 它不能是 C# 關鍵字。

C# 關鍵字

關鍵字是預定義為 C# 編譯器的保留字。 這些關鍵字不能用作識別符號。 但是,如果要使用這些關鍵字作為識別符號,但可以使用@字元將關鍵字字首來表示某一識別符號。

在 C# 中,一些識別符號在程式碼的上下文中具有特殊意義,例如getset被稱為上下文關鍵字。

下表列出了 C# 中的保留關鍵字和上下文關鍵字:

保留關鍵字

abstract as base bool break byte case
catch char checked class const continue decimal
default delegate do double else enum event
explicit extern false finally fixed float for
foreach goto if implicit in in (generic modifier) int
interface internal is lock long namespace new
null object operator out out (generic modifier) override params
private protected public readonly ref return sbyte
sealed short sizeof stackalloc static string struct
switch this throw true try typeof uint
ulong unchecked unsafe ushort using virtual void
volatile while - - - - -

上下文關鍵字

add alias ascending descending dynamic from get
global group into join let orderby partial (type)
partial(method) remove select set - - -