最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

C# 變量作用域的實(shí)現(xiàn)示例

 更新時(shí)間:2026年06月26日 08:20:07   作者:逝水無(wú)殤  
本文介紹了C#中的變量作用域規(guī)則,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧

在 C# 中,變量作用域(Scope) 是指變量在程序中可被訪問(wèn)的范圍。變量只能在其定義的作用域內(nèi)使用,超出作用域后將無(wú)法訪問(wèn)。

1. 局部變量作用域

局部變量聲明在方法、代碼塊、循環(huán)或條件語(yǔ)句中,只能在當(dāng)前代碼塊內(nèi)訪問(wèn)。

class Program
{
    static void Main()
    {
        int a = 10;

        if (a > 5)
        {
            int b = 20;
            Console.WriteLine(b); // 正確
        }

        // Console.WriteLine(b); // 編譯錯(cuò)誤
    }
}

2. 方法參數(shù)作用域

方法參數(shù)屬于方法內(nèi)部的局部變量,只能在當(dāng)前方法內(nèi)使用。

static void Print(int num)
{
    Console.WriteLine(num);
}

static void Main()
{
    Print(100);

    // Console.WriteLine(num); // 編譯錯(cuò)誤
}

3. 代碼塊作用域

{} 包圍的區(qū)域形成獨(dú)立作用域。

{
    int x = 100;
    Console.WriteLine(x);
}

// Console.WriteLine(x); // 編譯錯(cuò)誤

4. for 循環(huán)變量作用域

循環(huán)變量?jī)H在循環(huán)體內(nèi)有效。

for (int i = 0; i < 5; i++)
{
    Console.WriteLine(i);
}

// Console.WriteLine(i); // 編譯錯(cuò)誤

5. 類(lèi)成員變量作用域(字段)

字段屬于類(lèi),可以被類(lèi)中的所有方法訪問(wèn)。

class Student
{
    private string name = "Tom";

    public void Show()
    {
        Console.WriteLine(name);
    }
}

訪問(wèn)修飾符影響范圍

修飾符作用域
private當(dāng)前類(lèi)
protected當(dāng)前類(lèi)及子類(lèi)
internal當(dāng)前程序集
public所有地方
public class User
{
    private int age;
    protected string name;
    internal string address;
    public string phone;
}

6. 靜態(tài)變量作用域

靜態(tài)變量屬于類(lèi)本身,而不是對(duì)象實(shí)例。

class Counter
{
    public static int Count = 0;
}

Counter.Count++;
Console.WriteLine(Counter.Count);

7. Lambda 表達(dá)式閉包作用域

Lambda 可以訪問(wèn)外部變量。

int num = 10;

Action action = () =>
{
    Console.WriteLine(num);
};

action();

修改外部變量

int count = 0;

Action add = () =>
{
    count++;
};

add();
Console.WriteLine(count); // 1

8. switch 作用域

不同 case 共用同一個(gè)作用域。

? 錯(cuò)誤示例:

switch (value)
{
    case 1:
        int num = 10;
        break;

    case 2:
        int num = 20; // 編譯錯(cuò)誤
        break;
}

? 正確寫(xiě)法:

switch (value)
{
    case 1:
    {
        int num = 10;
        break;
    }

    case 2:
    {
        int num = 20;
        break;
    }
}

9. 變量隱藏(Shadowing)

內(nèi)部作用域變量不能與外部同名。

int age = 20;

{
    // int age = 30; // 編譯錯(cuò)誤
}

類(lèi)字段可被局部變量隱藏:

class User
{
    private string name = "Tom";

    public void Show()
    {
        string name = "Jack";

        Console.WriteLine(name);      // Jack
        Console.WriteLine(this.name); // Tom
    }
}

10. 生命周期與作用域區(qū)別

作用域(Scope)

決定變量在哪里可以訪問(wèn)。

生命周期(Lifetime)

決定變量在內(nèi)存中存在多久。

void Test()
{
    int x = 10;
}
  • 作用域:Test() 方法內(nèi)部
  • 生命周期:方法執(zhí)行期間

靜態(tài)變量:

class Test
{
    public static int Count = 0;
}
  • 作用域:類(lèi)可訪問(wèn)范圍
  • 生命周期:程序啟動(dòng)到結(jié)束

示例總結(jié)

class Program
{
    static int globalVar = 100; // 類(lèi)字段

    static void Main()
    {
        int localVar = 10; // 局部變量

        for (int i = 0; i < 3; i++)
        {
            int loopVar = i;

            Console.WriteLine(
                $"global={globalVar}, local={localVar}, loop={loopVar}");
        }

        // Console.WriteLine(loopVar); // 錯(cuò)誤
    }
}

作用域?qū)蛹?jí)關(guān)系:

類(lèi)作用域
└── 方法作用域
    └── if作用域
        └── for作用域
            └── Lambda作用域

遵循原則:內(nèi)層作用域可以訪問(wèn)外層變量,外層作用域不能訪問(wèn)內(nèi)層變量。

到此這篇關(guān)于C# 變量作用域的實(shí)現(xiàn)示例的文章就介紹到這了,更多相關(guān)C# 變量作用域內(nèi)容請(qǐng)搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!

相關(guān)文章

  • .Net Winform開(kāi)發(fā)筆記(四)透過(guò)現(xiàn)象看本質(zhì)

    .Net Winform開(kāi)發(fā)筆記(四)透過(guò)現(xiàn)象看本質(zhì)

    本文將從Winform應(yīng)用程序中的Program.cs文件的第一行代碼開(kāi)始逐步分析一個(gè)Winform應(yīng)用程序到底是怎樣從出生走向死亡
    2013-01-01
  • C#使用HttpHelper框架重啟路由器

    C#使用HttpHelper框架重啟路由器

    這篇文章介紹了C#使用HttpHelper框架重啟路由器的方法,文中通過(guò)示例代碼介紹的非常詳細(xì)。對(duì)大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友可以參考下
    2022-07-07
  • 解析錯(cuò)誤富文本json字符串(帶雙引號(hào))的快速解決方法

    解析錯(cuò)誤富文本json字符串(帶雙引號(hào))的快速解決方法

    下面小編就為大家?guī)?lái)一篇解析錯(cuò)誤富文本json字符串(帶雙引號(hào))的快速解決方法。小編覺(jué)得挺不錯(cuò)的,現(xiàn)在就分享給大家,也給大家做個(gè)參考。一起跟隨小編過(guò)來(lái)看看吧
    2016-08-08
  • c# JSON返回格式的WEB SERVICE

    c# JSON返回格式的WEB SERVICE

    首先用c#創(chuàng)建一個(gè)web service,主要是利用其WSDL的功能,當(dāng)然也可以利用php創(chuàng)建一個(gè),道理都是一樣的
    2008-12-12
  • C#使用Thrift作為RPC框架入門(mén)詳細(xì)教程

    C#使用Thrift作為RPC框架入門(mén)詳細(xì)教程

    這篇文件我們講了從0到1使用thrift框架的方法,也講了一些該框架的基本知識(shí),本文將詳細(xì)介紹 Thrift 在C#語(yǔ)言下的使用方式,并且提供豐富的實(shí)例代碼加以解釋說(shuō)明,幫助使用者快速構(gòu)建服務(wù),感興趣的朋友一起看看吧
    2021-11-11
  • Unity制作自定義字體的兩種方法

    Unity制作自定義字體的兩種方法

    這篇文章主要為大家詳細(xì)介紹了Unity制作自定義字體的兩種方法,文中示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下
    2020-12-12
  • C# 通過(guò) oledb 操作Excel實(shí)例代碼

    C# 通過(guò) oledb 操作Excel實(shí)例代碼

    本篇文章主要介紹了C# 通過(guò) oledb 操作Excel實(shí)例代碼,小編覺(jué)得挺不錯(cuò)的,現(xiàn)在分享給大家,也給大家做個(gè)參考。一起跟隨小編過(guò)來(lái)看看吧
    2017-06-06
  • C#簡(jiǎn)單的特殊輸出實(shí)例

    C#簡(jiǎn)單的特殊輸出實(shí)例

    這篇文章主要介紹了C#簡(jiǎn)單的特殊輸出,以實(shí)例實(shí)現(xiàn)了針對(duì)一些特殊字符與位置的輸出控制,具有一定的參考借鑒價(jià)值,需要的朋友可以參考下
    2014-11-11
  • c#基礎(chǔ)系列之System.String的深入理解

    c#基礎(chǔ)系列之System.String的深入理解

    這篇文章主要給大家介紹了關(guān)于c#基礎(chǔ)系列之System.String的深入理解,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧
    2018-09-09
  • C#實(shí)現(xiàn)雙端隊(duì)列的示例代碼

    C#實(shí)現(xiàn)雙端隊(duì)列的示例代碼

    雙端隊(duì)列是一種可以在兩端擴(kuò)展或收縮的序列化容器,本文主要介紹了C#實(shí)現(xiàn)雙端隊(duì)列的示例代碼,具有一定的參考價(jià)值,感興趣的可以了解一下
    2023-11-11

最新評(píng)論

前郭尔| 福州市| 黄冈市| 宜章县| 南城县| 弥渡县| 澄迈县| 凉城县| 五莲县| 玉田县| 五家渠市| 措勤县| 台中县| 台北县| 乡城县| 寿宁县| 潼关县| 仁寿县| 茌平县| 大悟县| 壶关县| 桃源县| 沙坪坝区| 抚州市| 桃源县| 且末县| 吐鲁番市| 交城县| 武川县| 金昌市| 辉南县| 加查县| 宁都县| 胶南市| 广水市| 隆回县| 绥芬河市| 漳浦县| 绵阳市| 禄劝| 丹阳市|