-- 作者:admin
-- 发布时间:11/9/2004 2:25:00 AM
-- C#快餐-6
发信人: walts (休息一会), 信区: DotNET 标 题: C#快餐-6 发信站: BBS 水木清华站 (Thu Jul 26 01:27:36 2001) Lesson 6 Understanding static and instance members. Static member of a class is shared by all instances of the class. Here is a simple example: using System; class Demo{ public static int k; public int i; public void show(){ Console.WriteLine("k={0} i={1}", k, i); } } class Test{ public static void Main(){ Demo a = new Demo(); a.i = 1; Demo b = new Demo(); b.i = 2; Demo.k = 4; a.show(); b.show(); } } Output: k=4 j=1 k=4 j=2 Class Demo has a static member k and an instance member i. Class Test has two objects of type Demo: a and b. Since k is staticStatic variable is a property of the class Both a and b have the same value of k. To change value of k we cannot use a or b but rather a special call Demo.k = 4 is required. Instance variable i can have different values for different objects. Instance variable is a property of the object. Non static member cannot reference a static member. The second property is especially important. The compiler allocates static and non static objects with different addressing schemes and one has to be careful that no references are passed between static and non static members. Here is a simple example: using System; public class Test{ public static void swap (ref int x, ref int y) { int temp=x; x = y; y = temp; } static void Main() { int a = 2; int b = 4; swap(ref a, ref b); Console.WriteLine("a={0}, b={1}",a,b); } } Main and swap are two static methods of class Test and they can pass references to each other. Alternatively you could pass a reference to an object: using System; public class Swap{ public void swap (ref int x, ref int y) { int temp=x; x=y; y=temp; } } public class Test { static void Main() { int a=2; int b=4; Swap hi = new Swap(); hi.swap(ref a, ref b); Console.WriteLine ("a={0}, b={1}", a, b); } } I haven't discussed static members of methods. Could you come up with a simple example? -- A great poem is a fountain forever overflowing with the waters of wisdom and delight. —— Shelley ※ 来源:·BBS 水木清华站 smth.org·[FROM: 166.111.142.118] 上一篇 返回上一页 回到目录 回到页首 下一篇
|