国产 无码 综合区,色欲AV无码国产永久播放,无码天堂亚洲国产AV,国产日韩欧美女同一区二区

【C#基礎(chǔ)】C# 基礎(chǔ)語法解析

這篇具有很好參考價(jià)值的文章主要介紹了【C#基礎(chǔ)】C# 基礎(chǔ)語法解析。希望對(duì)大家有所幫助。如果存在錯(cuò)誤或未考慮完全的地方,請(qǐng)大家不吝賜教,您也可以點(diǎn)擊"舉報(bào)違法"按鈕提交疑問。

序號(hào) 系列文章
0 【C#基礎(chǔ)】初識(shí)編程語言C#
1 【C#基礎(chǔ)】C# 程序通用結(jié)構(gòu)

前言

?? 大家好,我是writer桑,前面一章已經(jīng)學(xué)習(xí)了C#的程序結(jié)構(gòu),那本章就開始學(xué)習(xí)C#程序中的基礎(chǔ)語法,希望看完大家能夠有所收獲,感謝支持!


基礎(chǔ)語法

首先 C# 作為一門面向?qū)ο蟮木幊陶Z言,有著許多區(qū)別于其他語言不同的地方,其中包括關(guān)鍵字的運(yùn)用、類成員、標(biāo)識(shí)符等等。本章從這幾個(gè)方面進(jìn)行學(xué)習(xí),以便對(duì)搭建 C# 程序有個(gè)初步的認(rèn)識(shí)。

首先以下面 Square 程序的實(shí)現(xiàn)做示例,以借此討論 C# 的基礎(chǔ)語法。

using System;		// using 指令 

namespace SquareApplication		// namespace 命名空間
{
    internal class Square
    {
        // 成員字段
        private double length;
        private double width;
		
        // 成員方法
        public void Acceptdetails()
        {
            length = 4.5;
            width = 3.5;
        }

        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 ExecuteSquare
    {
        // Main 方法的聲明
        static void Main(string[] args)
        {
            Square s = new Square();	// 創(chuàng)建類型的新實(shí)例
            s.Acceptdetails();
            s.Display();
            Console.ReadLine();
        }
    }
}

1. using 關(guān)鍵字

在 C# 程序中 using 關(guān)鍵字有導(dǎo)入命名空間、創(chuàng)建別名、釋放資源三種用法。

1,using 指令導(dǎo)入指定的命名空間

using System;  
  • using 指令允許使用在命名空間中定義的類型,而無需指定該類型的完全限定命名空間。using 指令以基本形式從單個(gè)命名空間導(dǎo)入所有類型。
  • 程序中 using System 表示導(dǎo)入 System 命名空間, 同時(shí)一個(gè)程序允許有多個(gè) using 指令的存在 ,這種用法類似于 Python 中的 Import 語法。

2, using 別名指令為名稱空間或類型創(chuàng)建別名。

using systext = System.Text;
// using systext;  // 編譯器錯(cuò)誤:未能找到類型或命名空間名"systext"
  • 創(chuàng)建 using 別名指令,以便更易于將標(biāo)識(shí)符限定為命名空間或類型。 在任何 using 指令中,都必須使用完全限定的命名空間或類型,而無需考慮它之前的 using 指令。
  • 注意,using 指令的聲明中不能使用 using 別名。否則會(huì)生成編譯器錯(cuò)誤;而且 using 別名指令的右側(cè)不能有開放式泛型類型。 例如,不能為 List<T> 創(chuàng)建 using 別名,但可以為 List<int> 創(chuàng)建 using 別名。

3, using 語句定義一個(gè)范圍,在此范圍的末尾將釋放對(duì)象。

// 注意 Square 類需要繼承 IDisposable 接口
using (Square s = new Square())
{
    // use s..
    // 離開這個(gè)代碼塊資源會(huì)自動(dòng)釋放
}
  • 在程序編譯階段,編譯器會(huì)自動(dòng)將using語句生成為try-catch-finally語句,并在finally塊中調(diào)用對(duì)象的Dispose方法,來清理資源。
  • using 語句提供可確保正確使用 IDisposable 對(duì)象的方便語法。 await using 語句可確保正確使用 IAsyncDisposable 對(duì)象。 C# 語言支持實(shí)現(xiàn) System.IAsyncDisposable 接口的異步可釋放類型。

2. namespace 關(guān)鍵字

在 C# 程序中 namespace 關(guān)鍵字用于聲明命名空間,在后來的版本中有新的用法。

1,namespace 關(guān)鍵字用于聲明包含一組相關(guān)對(duì)象的作用域??梢允褂妹臻g來組織代碼元素并創(chuàng)建全局唯一類型。

namespace SquareApplication
{
    class Square
    {
        public void SquareMethod()
        {
            System.Console.WriteLine(
            "SquareMethod inside SquareNamespace");
        }
    }
} 
  • 其他文件可以直接使用 using 指令引用 SquareApplication 命名空間。
  • 命名空間的名稱必須是有效的 C# 標(biāo)識(shí)符名稱。

2,從 C# 10 開始,可以為該文件中定義的所有類型聲明一個(gè)命名空間,如以下示例所示:

namespace SquareApplication;

class Square
{
	public void SquareMethod()
	{
	    System.Console.WriteLine(
	    "SquareMethod inside SquareNamespace");
	}
}
  • 這種新語法的優(yōu)點(diǎn)是更簡單,這節(jié)省了水平空間且不必使用大括號(hào)。 提高了代碼的可讀性。

3. class 關(guān)鍵字

在 C# 程序中 class 關(guān)鍵字主要用于聲明類

類是可在一個(gè)單元中就將字段和方法及其他函數(shù)成員結(jié)合起來的數(shù)據(jù)結(jié)構(gòu),在 C# 程序中屬于最基本的類型。示例如下:

class Square
{
    // Square details
}

class ExecuteSquare
{
    // ExecuteSquare details
}
  • 用 class 關(guān)鍵字聲明的類型為引用類型,方便其它代碼創(chuàng)建類實(shí)例對(duì)象。
  • 使用 class 關(guān)鍵字聲明的類名稱必須是有效的 C# 標(biāo)識(shí)符名稱。
  • class 關(guān)鍵字前面是訪問級(jí)別,默認(rèn)為 internal 類型, 即同一個(gè)程序集的對(duì)象可以訪問。

4. 成員字段

成員字段也就是在類范圍中聲明的變量

變量聲明語法: <data_type> <var_name>;在 Square 類中聲明了 width 和 length 兩個(gè)成員字段:

private double length;		
private double width;
  • 成員字段是在類范圍聲明的變量。 變量是類的屬性或數(shù)據(jù)成員,用于存儲(chǔ)數(shù)據(jù)。
  • 變量的 data_type 聲明必須是有效的 C# 數(shù)據(jù)類型,var_name 名稱必須是有效的 C# 標(biāo)識(shí)符名稱。
  • data_type 前面是變量的訪問級(jí)別,默認(rèn)為 private 類型,即對(duì)象本身在對(duì)象內(nèi)部可以訪問。

5. 成員方法

成員方法也即類中定義的可以執(zhí)行的函數(shù)

方法聲明語法:<Access Specifier> <Return Type> <Method Name>(Parameter List) { Method Body } ; Square 類包含了三個(gè)成員方法: AcceptDetails、GetArea 和 Display。

// 成員方法
public void Acceptdetails()
{
	// Method Body
}

public double GetArea()
{
	// Method Body
}

public void Display()
{
    // Method Body 
}
  • 成員方法定義類執(zhí)行的操作。 方法可接受提供輸入數(shù)據(jù)的參數(shù),并可通過參數(shù)返回輸出數(shù)據(jù)。 方法還可以不使用參數(shù)而直接返回值。
  • 在聲明語法中 Access Specifier、Return Type、Method Name 分別表示訪問說明、返回類型、方法名稱。其中返回類型和名稱必須聲明,訪問權(quán)限默認(rèn)為 private, 即對(duì)象本身在對(duì)象內(nèi)部可以訪問 。

6. Main 方法

在 C# 程序中 Main 方法是定義程序的入口點(diǎn)

在示例程序中,ExecuteSquare 類聲明了 Main 方法:

static void Main(string[] args)
{
    // Main Method Body
}
  • Main 方法是程序控制開始和結(jié)束的位置, 它決定著當(dāng)前類具體的行為。
  • Main 在類或結(jié)構(gòu)中聲,Main 必須是 static,它不需要是 public。且封閉類或結(jié)構(gòu)不一定要是靜態(tài)的。
  • Main 的返回類型可以是 void、int、Task 或 Task<int>。
  • 在 C# 9 之前程序必須聲明 Main 方法,否則會(huì)報(bào)編譯器錯(cuò)誤, 而在 C# 9 之后(包含 C# 9)則可以使用頂級(jí)語句,無需應(yīng)用程序中顯式聲明 Main 方法。

7. new 關(guān)鍵字

在 C# 程序中可以使用 new 關(guān)鍵字創(chuàng)建實(shí)例、聲明修飾符、作為類型約束。

1,new 運(yùn)算符創(chuàng)建類型的新實(shí)例

// 創(chuàng)建類型的新實(shí)例 
Square s = new Square() 
{
    // 在這設(shè)定初始值
};	
  • 使用 new 運(yùn)算符創(chuàng)建類型的新實(shí)例的同時(shí)會(huì)調(diào)用該類型的某個(gè)構(gòu)造函數(shù)
  • 使用帶有new運(yùn)算符的對(duì)象或集合初始值設(shè)定項(xiàng)會(huì)實(shí)例化和初始化一個(gè)語句中的對(duì)象

2,new 關(guān)鍵字用作成員聲明修飾符

// 使用 DerivedC.Invoke 隱藏了 BaseC.Invoke。
// 字段 x 不受影響,因?yàn)槲词褂妙愃泼Q將其隱藏。
public class BaseC
{
    public int x;
    public void Invoke() { }
}

public class DerivedC : BaseC
{
    new public void Invoke() { }
}
  • new 修飾符可以顯式隱藏從基類繼承的成員
  • 隱藏繼承的成員時(shí),該成員的派生版本將替換基類版本

3,new 關(guān)鍵字用作泛型類型約束

class ItemFactory<T> where T : new()
{
	public T GetNewItem()
    {
        return new T();
    }
}
  • new 約束指定泛型類或方法聲明中的類型實(shí)參必須有公共的無參數(shù)構(gòu)造函數(shù)。
  • 若要使用 new 約束,則該類型不能為抽象類型。

8. 標(biāo)識(shí)符

標(biāo)識(shí)符是分配給類型(類、接口、結(jié)構(gòu)、記錄、委托或枚舉)、成員、變量或命名空間的名稱。以下是 C# 標(biāo)識(shí)符命名規(guī)則和約定:

命名規(guī)則:

有效標(biāo)識(shí)符必須遵循以下規(guī)則:

  • 標(biāo)識(shí)符必須以字母或下劃線 ( _ ) 開頭。
  • 標(biāo)識(shí)符可以包含 Unicode 字母字符、十進(jìn)制數(shù)字字符、Unicode 連接字符、Unicode 組合字符或 Unicode 格式字符。
  • 可以在標(biāo)識(shí)符上使用 @ 前綴來聲明與 C# 關(guān)鍵字匹配的標(biāo)識(shí)符。 @ 不是標(biāo)識(shí)符名稱的一部分。 例如,@if 聲明名為 if 的標(biāo)識(shí)符。 這些逐字標(biāo)識(shí)符主要用于與使用其他語言聲明的標(biāo)識(shí)符的互操作性。

命名約定:

除了規(guī)則之外,C # 程序的類型名稱、命名空間和所有公共成員也應(yīng)當(dāng)遵循PascalCase(變量命名方法)。 以下為常見的約定:

  • 接口名稱以大寫字母 I 開頭。
  • 屬性類型以單詞 Attribute 結(jié)尾。
  • 枚舉類型對(duì)非標(biāo)記使用單數(shù)名詞,對(duì)標(biāo)記使用復(fù)數(shù)名詞。
  • 標(biāo)識(shí)符不應(yīng)包含兩個(gè)連續(xù)的下劃線 ( _ ) 字符。 這些名稱保留給編譯器生成的標(biāo)識(shí)符。

9. 關(guān)鍵字

關(guān)鍵字是預(yù)定義的保留標(biāo)識(shí)符,對(duì)編譯器有特殊意義。 除非前面有 @ 前綴,否則不能在程序中用作標(biāo)識(shí)符。 例如,@if 是有效標(biāo)識(shí)符,而 if 則不是,因?yàn)?if 是關(guān)鍵字。

1,第一個(gè)表列出了是 C# 程序任意部分中的保留標(biāo)識(shí)符的關(guān)鍵字:

保留關(guān)鍵字
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 int interface
internal is lock long namespace new null
object operator out 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

2, 以下三個(gè)表列出了 C# 中的上下文關(guān)鍵字。 上下文關(guān)鍵字用于在代碼中提供特定含義,但它不是 C# 中的保留字。 一些上下文關(guān)鍵字(如 partial 和where)在兩個(gè)或多個(gè)上下文中有特殊含義。

上下文關(guān)鍵字
add and alias ascending args async await
by descending dynamic equals from get global
group init into join let
托管(函數(shù)指針調(diào)用約定)
nameof nint not notnull nuint on or
orderby partial(類型) partial(方法) record remove select set
非托管(函數(shù)指針調(diào)用約定)
unmanaged(泛型類型約) value var when(篩選條件)
where(泛型類型約束) where(查詢子句) with yield
  • 上下文關(guān)鍵字僅在一部分程序上下文中有特殊含義,可以在相應(yīng)上下文范圍之外用作標(biāo)識(shí)符。
  • 一般來說,C# 語言中新增的關(guān)鍵字會(huì)作為上下文關(guān)鍵字添加,以免破壞用舊版語言編寫的程序。

結(jié)語

?? 以上就是 C# 基礎(chǔ)語法的介紹,希望能夠?qū)Υ蠹矣兴鶐椭?。望大家多多支持,你們的支持就是筆者創(chuàng)作最大的動(dòng)力!文章來源地址http://www.zghlxwxcb.cn/news/detail-446536.html

到了這里,關(guān)于【C#基礎(chǔ)】C# 基礎(chǔ)語法解析的文章就介紹完了。如果您還想了解更多內(nèi)容,請(qǐng)?jiān)谟疑辖撬阉鱐OY模板網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關(guān)文章,希望大家以后多多支持TOY模板網(wǎng)!

本文來自互聯(lián)網(wǎng)用戶投稿,該文觀點(diǎn)僅代表作者本人,不代表本站立場。本站僅提供信息存儲(chǔ)空間服務(wù),不擁有所有權(quán),不承擔(dān)相關(guān)法律責(zé)任。如若轉(zhuǎn)載,請(qǐng)注明出處: 如若內(nèi)容造成侵權(quán)/違法違規(guī)/事實(shí)不符,請(qǐng)點(diǎn)擊違法舉報(bào)進(jìn)行投訴反饋,一經(jīng)查實(shí),立即刪除!

領(lǐng)支付寶紅包贊助服務(wù)器費(fèi)用

相關(guān)文章

  • Go 語言入門指南:基礎(chǔ)語法和常用特性解析

    代碼解釋: 變量聲明和初始化: var a = \\\"initial\\\" :聲明一個(gè)名為 a 的變量,初始值為字符串 “initial”。 var b, c int = 1, 2 :聲明兩個(gè)整數(shù)變量 b 和 c ,并分別初始化為 1 和 2。 var d = true :聲明一個(gè)布爾變量 d ,初始值為 true 。 var e float64 :聲明一個(gè)浮點(diǎn)數(shù)變量 e ,因?yàn)闆]有顯

    2024年02月11日
    瀏覽(61)
  • Go語言入門指南:基礎(chǔ)語法和常用特性解析(上)

    Go語言入門指南:基礎(chǔ)語法和常用特性解析(上)

    Go是一種靜態(tài)類型的編譯語言,常常被稱作是21世紀(jì)的C語言。Go語言是一個(gè)開源項(xiàng)目,可以免費(fèi)獲取編譯器、庫、配套工具的源代碼,也是高性能服務(wù)器和應(yīng)用程序的熱門選擇。 Go語言可以運(yùn)行在類UNIX系統(tǒng)——比如Linux、OpenBSD、Microsoft Windows等操作系統(tǒng)上。 因?yàn)镚o語言的特性,

    2024年02月12日
    瀏覽(23)
  • Go 語言入門指南: 環(huán)境搭建、基礎(chǔ)語法和常用特性解析 | 青訓(xùn)營

    Go 語言入門指南: 環(huán)境搭建、基礎(chǔ)語法和常用特性解析 | 青訓(xùn)營

    Go 是一個(gè)開源的編程語言,它能讓構(gòu)造簡單、可靠且高效的軟件變得容易。 Go是從2007年末由Robert Griesemer, Rob Pike, Ken Thompson主持開發(fā),后來還加入了Ian Lance Taylor, Russ Cox等人,并最終于2009年11月開源,在2012年早些時(shí)候發(fā)布了Go 1穩(wěn)定版本。現(xiàn)在Go的開發(fā)已經(jīng)是完全開放的,并且

    2024年02月14日
    瀏覽(22)
  • 【字節(jié)跳動(dòng)青訓(xùn)營】后端筆記整理-1 | Go語言入門指南:基礎(chǔ)語法和常用特性解析

    【字節(jié)跳動(dòng)青訓(xùn)營】后端筆記整理-1 | Go語言入門指南:基礎(chǔ)語法和常用特性解析

    **本人是第六屆字節(jié)跳動(dòng)青訓(xùn)營(后端組)的成員。本文由博主本人整理自該營的日常學(xué)習(xí)實(shí)踐,首發(fā)于稀土掘金:??Go語言入門指南:基礎(chǔ)語法和常用特性解析 | 青訓(xùn)營 本文主要梳理自 第六屆字節(jié)跳動(dòng)青訓(xùn)營(后端組)-Go語言原理與實(shí)踐第一節(jié)(王克純老師主講) 。同時(shí)

    2024年02月13日
    瀏覽(24)
  • Java語法和C#語法有哪些異同?

    Java和C#是兩種流行的面向?qū)ο缶幊陶Z言,它們有許多相似之處,因?yàn)樗鼈兌际艿紺++和面向?qū)ο缶幊痰挠绊?。但它們也有一些語法上的異同,讓我們來看看它們的一些主要異同點(diǎn): 相同點(diǎn): 1、面向?qū)ο缶幊蹋篔ava和C#都是面向?qū)ο蟮木幊陶Z言,支持類、對(duì)象、繼承、封裝和多態(tài)

    2024年02月16日
    瀏覽(26)
  • C#基本語法

    定義:C#是一種面向?qū)ο蟮木幊陶Z言。 在任何c#程序中的第一條語句都是 using用于在程序中包含命名空間。一個(gè)程序可以包含多個(gè)using語句 class class用于聲明一個(gè)類 C#的注釋 注釋是用于解釋代碼。編譯器會(huì)忽略注釋的條目。 例:多行注釋以/*開始,通過*

    2024年01月20日
    瀏覽(17)
  • c#語法問題記錄

    c#語法問題記錄

    using 語句定義一個(gè)范圍,在此范圍的末尾將釋放對(duì)象。 using 指令為命名空間創(chuàng)建別名,或?qū)朐谄渌臻g中定義的類型。 internal: 是類型和類型成員的訪問修飾符。 sealed :應(yīng)用于某個(gè)類時(shí),sealed 修飾符可阻止其他類繼承自該類。 partial :拆分一個(gè)類、一個(gè)結(jié)構(gòu)

    2024年02月16日
    瀏覽(17)
  • C# 語法筆記

    C# 語法筆記

    ref:引用傳遞 out: 輸出傳參 假設(shè)在函數(shù)調(diào)用前變量a的值為5; 此函數(shù)的實(shí)現(xiàn)使用輸出傳參,在方法內(nèi)第一次修改a=1,第二次修改a=2,第三次修改為a=3,那么a的值會(huì)在執(zhí)行此函數(shù)后為3; unity中的射線檢測的第三個(gè)參數(shù)就是通過輸出值傳遞被擊中 物體的信息 public static bool Raycast(Vecto

    2024年02月04日
    瀏覽(23)
  • C# 6.0 語法新特性

    靜態(tài)using(static using)。引用靜態(tài)類后,可以直接方法名 表達(dá)式方法?使用表達(dá)式方法,只有一條語句的方法可以使用lambda語法寫。 表達(dá)式屬性 自動(dòng)屬性初始化 只讀自動(dòng)屬性 nameof操作符?字段、屬性、方法和類型的name可以通過nameof訪問。使用nameof,可以方便的重構(gòu)name變化 Nu

    2024年02月07日
    瀏覽(14)
  • 揭秘:C#語法中“_ =” 是什么?

    在C#編程世界中,語法的精妙之處往往體現(xiàn)在那些看似微小卻極具影響力的符號(hào)與結(jié)構(gòu)之中。其中,“_ =” 這一組合突然出現(xiàn)還真不知道什么意思。本文將深入剖析“_ =” 的含義、工作原理及其在實(shí)際編程中的廣泛應(yīng)用,揭示其作為C#語法奇兵的重要角色。 下劃線 _ 在C#中并

    2024年04月22日
    瀏覽(15)

覺得文章有用就打賞一下文章作者

支付寶掃一掃打賞

博客贊助

微信掃一掃打賞

請(qǐng)作者喝杯咖啡吧~博客贊助

支付寶掃一掃領(lǐng)取紅包,優(yōu)惠每天領(lǐng)

二維碼1

領(lǐng)取紅包

二維碼2

領(lǐng)紅包