首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
您现在的位置: 程式碼之家 >> 編程語言 >  >> .NET 網頁程式設計 >> C# >> 關於C#

C# 變數聲明、作用域與常量:從 Hello World 到記憶體邊界

     編輯:關於C#

經典起點:Hello World 剖析

using System;
namespace Gosoa.Com
{
    class MyFirstClass
    {
        static void Main()
        {
            Console.WriteLine("Hello World!");
        }
    }
}

編譯:csc test.cs → test.exe。關鍵點:

  1. using System 引入基礎類別庫(類似 Java import)
  2. 命名空間慣用公司域名倒序避免衝突
  3. Main 為進入點,首字母大寫
  4. 陳述式以分號結束,程式碼區塊用大括號包裹

一、變數聲明與初始化

1.1 聲明語法

int i;        // 整數變數
string str;   // 字串變數

1.2 初始化規則:確定性賦值

C# 強制變數在使用前必須被明確賦值,分兩種情境:

  • 類別欄位:若未顯式初始化,預設為 0/null/false 等型別預設值。
  • 區域變數:必須顯式初始化,否則編譯錯誤(CS0165)。

範例對比

// 類別欄位:合法,y 自動為 0
class Demo { static int y; static void Main() => Console.WriteLine(y); }

// 區域變數:編譯錯誤
static void Main() { int y; Console.WriteLine(y); } // CS0165

// 修正:顯式初始化
static void Main() { int y = 10; Console.WriteLine(y); }

二、變數作用域規則

作用域決定變數可被存取的程式碼區域:

  1. 欄位(成員變數):隨類別作用域,類別可見即可見。
  2. 區域變數:從聲明處起至所屬區塊({})結束。
  3. 迴圈變數:僅存在於迴圈區塊內。

命名衝突實戰


// 合法:兩個 i 作用域分離
for (int i = 0; i < 10; i++) { }
for (int i = 0; i < 20; i++) { }

// 錯誤:外層 j 作用域覆蓋內層
int j = 5;
for (int i = 0; i < 10; i++)
{
    int j = 20; // CS0136: 區域變數 'j' 無法在此範圍宣告
    Console.WriteLine(i + j);
}

// 合法:區域變數遮蔽欄位
class Demo
{
    int j = 30;          // 欄位
    static void Main()
    {
        int j = 20;      // 區域變數遮蔽欄位
        Console.WriteLine(j); // 輸出 20
    }
}

三、常量:編譯期不變值

const double PI = 3.14159;
const string AppName = "MyApp";

規則:

  • 聲明時必須初始化,且不可變更
  • 隱含 static,不可再加 static 關鍵字
  • 僅限編譯期常數(字面值、其他 const、預設運算)
  1. 上一篇文章:
  2. 下一篇文章:
Copyright © 程式碼之家 All Rights Reserved