枚舉
與 C/C++ 相似,在 C# 中可以使用枚舉來組合已命名常量,而在 Java 中不能使用枚舉。下面的示例定義了一個簡單的 Color 枚舉。
public enum Color {Green, Orange, Red, Blue}
還可以為枚舉賦整數值,如下面的枚舉聲明所示:
public enum Color {Green=10, Orange=20, Red=30, Blue=40}
下面的程序調用 Enum 類型的 GetNames 方法來顯示枚舉的可用常量。然後,它將值賦給枚舉,並顯示該值。
using System;
public class TypeTest
{
public static void Main()
{
Console.WriteLine("Possible color choices: ");
//Enum.GetNames returns a string array of named constants for the enum
foreach(string s in Enum.GetNames(typeof(Color)))
{
Console.WriteLine(s);
}
Color FavoriteColor = Color.Blue;
Console.WriteLine("Favorite Color is {0}",FavoriteColor);
Console.WriteLine("Favorite Color value is {0}", (int)FavoriteColor);
}
}
在運行之後,該程序將顯示如下結果:
Possible color choices:
Green
Orange
Red
Blue
Favorite Color is Blue
Favorite Color value is 40
字符串
在 Java 和 C# 中,字符串類型表現出相似的行為,只有一些細微的差別。二者的字符串類型均是不可改變的,這意味著一旦字符串創建完畢,就不能改變字符串的值。在二者的實例中,看起來像修改字符串實際內容的方法實際上創建一個新的字符串供返回,而保留原始的字符串不變。在 C# 和 Java 中,比較字符串值的過程是不同的。在 Java 中,為了比較字符串的值,開發人員需要按照字符串類型調用 equals() 方法,正如在默認情況下 == 運算符比較引用類型一樣。在 C# 中,開發人員可以使用 == 或 != 運算符來直接比較字符串的值。在 C# 中,盡管字符串是引用類型,但是在默認情況下,== 和 != 運算符將比較字符串的值而不是引用。在本文後面,我們將討論值類型和引用。
正如在 Java 中一樣,C# 開發人員不應該使用字符串類型來連接字符串,以避免每次連接字符串時都創建新的字符串類的開銷。相反,開發人員可以使用 System.Text 命名空間中的 StringBuilder 類,它在功能上等同於 Java 中的 StringBuffer 類。