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

C# 控制流程與類別存取修飾符:while、do-while、sealed、readonly 完整指南

     編輯:關於C語言

迴圈陳述句:while 與 do-while

C# 與 Java 的 while 和 do...while 語法完全相同:

while (condition)
{
    // statements
}

do
{
    // statements
}
while (condition); // 別忘了分號

類別存取修飾符

C# 修飾符與 Java 大致對應,但有細微差別。非巢狀類別僅能用 public 或 internal;巢狀類別可用全部五種:

  • public:所有類別可見
  • protected:僅衍生類別可見
  • private:僅當前類別可見
  • internal:僅相同組件(Assembly)可見,約等於 Java JAR
  • protected internal:當前組件或衍生類型可見

預設存取層級: C# 為 private,Java 為 package-private。

sealed 修飾符:防止繼承

sealed 類別無法被繼承,相當於 Java 的 final class。sealed 類別不能是 abstract。結構體隱含 sealed,不可繼承。

readonly vs const:常數定義

C# 用 const(編譯時期)與 readonly(執行期)取代 Java 的 final。readonly 可在建構函式或宣告處指派,允許執行期運算:

using System;

public class ReadOnlyClass
{
    private readonly int IntegerConstant;

    public ReadOnlyClass()
    {
        IntegerConstant = 5; // 建構函式指派
    }

    public int IntMember
    {
        set { /* 編譯錯誤:無法在建構函式外修改 readonly */ }
        get { return IntegerConstant; }
    }

    public static void Main(string[] args)
    {
        ReadOnlyClass obj = new ReadOnlyClass();
        Console.WriteLine("Value: {0}", obj.IntMember);
    }
}

注意: static readonly 欄位必須在靜態建構函式或宣告處初始化。

  1. 上一篇文章:
  2. 下一篇文章:
Copyright © 程式碼之家 All Rights Reserved