4、C#基礎 - C# 的 常見概念簡述


在上篇文章中,你跟着我寫了一個HelloWorld,本篇中,我們來談談一些C#程序中的小概念

1、C# 程序結構

一個 C# 程序主要包括以下部分:

  • 命名空間聲明(Namespace declaration)
  • 一個類(class)
  • Class 方法
  • Class 屬性
  • 一個 Main(主)方法
  • 語句(Statements)& 表達式(Expressions)
  • 注釋

我們把上一篇的代碼添出來

 1 using System;
 2 
 3 namespace HelloWorld
 4 {
 5     class Program
 6     {
 7         static void Main(string[] args)
 8         {
 9             Console.Write("HelloWorld");
10             Console.Read();
11         }
12     }
13 }

 

程序的第1行 using System; - using 關鍵字用於在程序中包含 System 命名空間。 一個程序一般有多個 using 語句

下一行namespace HelloWorld - namespace關鍵字用於申明命名空間,一個命名空間里有多個類。本代碼中,表示一個為HelloWorld的命名空間

下一行class Program - class關鍵字用於申明一個類,類 Program 包含了程序使用的數據和方法聲明。類一般包含多個方法。方法定義了類的行為。在這里,Program 類只有一個 Main 方法。

下一行定義了 Main 方法,是所有 C# 程序的 入口點。Main 方法說明當執行時 類將做什么動作。

注釋是用於解釋代碼。編譯器會忽略注釋的條目。在 C# 程序中,多行注釋以 /* 開始,並以字符 */ 終止,如下所示:

/* 這是C#中
的多行注釋的
演示 */

 單行注釋是用 '//' 符號表示。例如:

//這是C#中的單行注釋的演示 

 
2、標識符

標識符是用來識別類、變量、函數或任何其它用戶定義的項目。在 C# 中,類的命名必須遵循如下基本規則:

  • 標識符必須以字母、下划線或 @ 開頭,后面可以跟一系列的字母、數字( 0 - 9 )、下划線( _ )、@。
  • 標識符中的第一個字符不能是數字。
  • 標識符必須不包含任何嵌入的空格或符號,比如 ? - +! # % ^ & * ( ) [ ] { } . ; : " ' / \。
  • 標識符不能是 C# 關鍵字。除非它們有一個 @ 前綴。 例如,@if 是有效的標識符,但 if 不是,因為 if 是關鍵字。
  • 標識符必須區分大小寫。大寫字母和小寫字母被認為是不同的字母。
  • 不能與C#的類庫名稱相同。

3、C# 關鍵字

關鍵字是 C# 編譯器預定義的保留字。這些關鍵字不能用作標識符,但是,如果您想使用這些關鍵字作為標識符,可以在關鍵字前面加上 @ 字符作為前綴。
在 C# 中,有些標識符在代碼的上下文中有特殊的意義,如 get 和 set,這些被稱為上下文關鍵字(contextual keywords)。
下表列出了 C# 中的保留關鍵字(Reserved Keywords)和上下文關鍵字(Contextual Keywords):

保留關鍵字

 

上下文關鍵字

詳見:https://docs.microsoft.com/zh-cn/dotnet/csharp/language-reference/keywords/

 


4、C# 數據類型

C#是一種強類型語言。 每個變量和常量都有一個類型,每個計算為值的表達式也是如此,每個方法簽名為每個輸入參數和返回值指定一個類型。所有的類型都是繼承自System.Object

C#的數據類型有三種:

  • 值類型(Value types)
  • 引用類型(Reference types)
  • 指針類型(Pointer types)

在不安全的代碼里才會用到指針類型,本系列不介紹。你僅要知道,指針類型不從 object 繼承,並且指針類型與 object 之間不存在轉換。 此外,裝箱和取消裝箱不支持指針。 但是,你可在不同的指針類型之間以及指針類型和整型之間進行轉換。(這句話記不住也沒有關系,這個類型在絕大部分的工作中都用不上,個人認為,這個類型就是為了給c++程序員用的,個人觀點不喜勿噴!)。后面我們也會有單獨的章節去講,這里你不必太糾結,心里有這些概念就行了。

詳見:https://docs.microsoft.com/zh-cn/dotnet/csharp/language-reference/keywords/types 

 

5、C# 變量

 一個變量只不過是一個供程序操作的存儲區的名字。在 C# 中,每個變量都有一個特定的類型,類型決定了變量的內存大小和布局。范圍內的值可以存儲在內存中,可以對變量進行一系列操作。

 C# 中變量定義的語法:

<data_type> <variable_list>;

 

在這里,data_type 必須是一個有效的 C# 數據類型,可以是 char、int、float、double 或其他用戶自定義的數據類型。variable_list 可以由一個或多個用逗號分隔的標識符名稱組成。

定義變量示例:

int i,j;
char c;
string mrbug;

 

變量通過在等號后跟一個常量表達式進行初始化(又叫賦值)。初始化的一般形式為:

<data_type> <variable_name> = value;

 

一些示例:

int i = 0 , j = 100; //初始化 i 和 j

string myname = "mrbug" ; //初始化myname

 

定義變量時就為這個變量賦一個初始值,是一個良好的編碼習慣

 

6、C# 常量

顧名思意常量是固定值,程序執行期間不會改變。常量可以是任何基本數據類型,比如整數常量、浮點常量、字符常量或者字符串常量,還有枚舉常量。
常量可以被當作常規的變量,只是它們的值在定義后不能被修改。在C#中,常量以下面的形式定義:

const <data_type> <constant_name> = value;

 

定義常量示例:

const double pi = 3.1415926; // 常量聲明

 

詳見:https://docs.microsoft.com/zh-cn/dotnet/csharp/programming-guide/classes-and-structs/constants

 

7、C# 中的 Lvalues 和 Rvalues

C# 中的兩種表達式:

  • lvalue:lvalue 表達式可以出現在賦值語句的左邊或右邊。
  • rvalue:rvalue 表達式可以出現在賦值語句的右邊,不能出現在賦值語句的左邊。

左值(lvalue)是指在單個表達式的外部保留的對象。 可以將左值視為具有名稱的對象。 所有變量(包括不能更改的 (const) 變量)都是左值。 左值是一個不在使用它的表達式的外部保留的臨時值。

數值是 rvalue 的,因此不能被賦值,不能出現在賦值語句的左邊。下面是一個有效的語句:

int x = 3 + 4;  

 

在此示例中,x 是左值,因為它在定義它的表達式的外部保留。 表達式 3 + 4 是為一個右值,因為其計算結果為不在定義它的表達式的外部保留的臨時值。 

 

8、C# 命名空間(Namespace)

命名空間的設計目的是提供一種讓一組名稱與其他名稱分隔開的方式。在一個命名空間中聲明的類的名稱與另一個命名空間中聲明的相同的類的名稱不沖突。

命名空間的定義是以關鍵字 namespace 開始,后跟命名空間的名稱,如下所示:

namespace namespace_name
{
   // 代碼聲明
}

 

using 關鍵字表明程序使用的是給定命名空間中的名稱。例如,我們在程序中使用 System 命名空間,其中定義了類 Console。我們可以只寫:

Console.WriteLine ("Hello world");

 

我們可以寫完全限定名稱,如下:

System.Console.WriteLine("Hello world");

 

在C#中,命名空間可以被嵌套,即您可以在一個命名空間內定義另一個命名空間,如下所示:

namespace namespace_name1 
{
   // 代碼聲明
   namespace namespace_name2 
   {
     // 代碼聲明
int age = 18 ;
} }

 

在C#中,你可以使用點(.)運算符訪問嵌套的命名空間的成員,例如上例中你可以這樣使用:

namespace_name1.namespace_name2.age = 30 ;

 

詳見:https://docs.microsoft.com/zh-cn/dotnet/csharp/language-reference/keywords/namespace


 

C#基礎,目錄

上一篇:3、C#基礎 - C# 的 Hello World

下一篇:5、C#基礎 - C#的值類型


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM