靜態方法:
using System;
class MyClass
{
/* 靜態方法 */
public static string Fun1() { return "Fun1"; }
internal static string Fun2() { return "Fun2"; }
/* 一般方法 */
public string Fun3() { return "Fun3"; }
internal string Fun4() { return "Fun4"; }
}
class Program
{
static void Main()
{
/* 靜態方法通過類名調用: */
Console.WriteLine(MyClass.Fun1()); //Fun1
Console.WriteLine(MyClass.Fun2()); //Fun2
/* 非靜態方法通過對象調用: */
MyClass obj = new MyClass();
Console.WriteLine(obj.Fun3()); //Fun3
Console.WriteLine(obj.Fun4()); //Fun4
Console.ReadKey();
}
}
字段:
using System;
class MyClass
{
public int F1; /* 字段也有 public、internal、protected、private 的區別, 默認是 private */
public static int F2; /* 靜態字段, 可通過類名讀寫 */
public const int F3 = 2008; /* 常量字段, 可通過類名讀, 只讀 */
public readonly int F4; /* 只讀字段, 通過對象讀; 只能在聲明時和構造函數中賦值 */
public MyClass()
{
F4 = 2010;
}
}
class Program
{
static void Main()
{
/* 通過類名可以訪問 F2、F3; 但 F3 是只讀的 */
Console.WriteLine(MyClass.F2); //0
Console.WriteLine(MyClass.F3); //2008
MyClass.F2 = 2009;
Console.WriteLine(MyClass.F2); //2009
/* 通過對象可以訪問 F1、F4; 但 F4 是只讀的 */
MyClass obj = new MyClass();
Console.WriteLine(obj.F1); //0
Console.WriteLine(obj.F4); //2010
obj.F1 = 2009;
Console.WriteLine(obj.F1); //2009
Console.ReadKey();
}
}