while 和 do...while 循環
在兩種語言中,while 和 do...while 語句的語法和操作均相同:
while (condition)
{
//statements
}
As usual, don't forget the trailing ; in do...while loops:
do
{
//statements
}
while(condition);
類基礎訪問修飾符
C# 中的修飾符與 Java 大致相同,我們將在這一部分介紹其中的一些細微差別。每個類成員或類本身都可以用訪問修飾符進行聲明,以定義許可訪問的范圍。沒有在其他類中聲明的類只能指定 public 或 internal 修飾符,而嵌套的類(如其他的類成員)可以指定下面五個修飾符中的任何一個:
•
public — 對所有類可見
•
protected —僅從派生類中可見
•
private — 僅在給定的類中可見
•
internal — 僅在相同的程序集中可見
•
protected internal — 僅對當前的程序集或從包含類中派生的類型可見public、protected 和 private 修飾符
public 修飾符使得可以從類內外的任何地方訪問成員。protected 修飾符表示訪問僅限於包含類或從它派生的類。private 修飾符意味著只可能從包含類型中進行訪問。
internal 修飾符
internal 項只可以在當前的程序集中進行訪問。.Net 中的程序集大致等同於 Java 的 JAR 文件,它表示可以從中構造其他程序的生成塊。
protected internal 修飾符
protected internal 項僅對當前程序集或從包含類派生的類型可見。在 C# 中,默認訪問修飾符是 private,而 Java 的默認訪問修飾符是包范圍。
sealed 修飾符
在其類聲明中帶有 sealed 修飾符的類可以認為是與抽象類完全相反的類 — 它不能被繼承。我們可以將一個類標記為 sealed,以防止其他類重寫它的功能。自然地,sealed 類不能是抽象的。同時還需要注意,該結構是隱式密封的;因此,它們不能被繼承。sealed 修飾符相當於在 Java 中用 final 關鍵字標記類。
readonly 修飾符
要在 C# 中定義常量,我們可以使用 const 或 readonly 修飾符替換 Java 的 final 關鍵字。在 C# 中,這兩個修飾符之間的區別在於,const 項是在編譯時處理的,而 readonly 字段是在運行時設置的。這可以允許我們修改用於在運行時確定 readonly 字段值的表達式。
這意味著給 readonly 字段的賦值可以出現在類構造函數及聲明中。例如,下面的類聲明了一個名為 IntegerVariable 的 readonly 變量,它是在類構造函數中初始化的:
using System;
public class ReadOnlyClass
{
private readonly int IntegerConstant;
public ReadOnlyClass ()
{
IntegerConstant = 5;
}
// We get a compile time error if we try to set the value of the readonly
// class variable outside of the constructor
public int IntMember
{
set
{
IntegerConstant = value;
}
get
{
return IntegerConstant;
}
}
public static void Main(string[] args)
{
ReadOnlyClass obj= new ReadOnlyClass();
// We cannot perform this Operation on a readonly fIEld
obj.IntMember = 100;
Console.WriteLine("Value of IntegerConstant fIEld is {0}",
obj.IntMember);
}
}
注意,如果 readonly 修飾符應用於靜態字段,它就應該在該靜態字段中進行初始化。