Groups
Groups
Sign in
Groups
Groups
《c#高级编程》第三版
Conversations
About
Send feedback
Help
静态成员和非静态成员的区别?
1 view
Skip to first unread message
yrui
unread,
Dec 9, 2007, 8:28:35 PM
12/9/07
Reply to author
Sign in to reply to author
Forward
Sign in to forward
Delete
You do not have permission to delete messages in this group
Copy link
Report message
Show original message
Either email addresses are anonymous for this group or you need the view member email addresses permission to view the original message
to 《c#高级编程》第三版
静态变量使用 static 修饰符进行声明,在类被实例化时创建,通过类进行访问
不带有 static 修饰符声明的变量称做非静态变量,在对象被实例化时创建,通过对象进行访问
一个类的所有实例的同一静态变量都是同一个值,同一个类的不同实例的同一非静态变量可以是不同的值
静态函数的实现里不能使用非静态成员,如非静态变量、非静态函数等
示例:
using System;
using System.Collections.Generic;
using System.Text;
namespace Example01
{
class Program
{
class Class1
{
public static String staticStr = "Class";
public String notstaticStr = "Obj";
}
static void Main(string[] args)
{
//静态变量通过类进行访问,该类所有实例的同一静态变量都是同一个值
Console.WriteLine("Class1's staticStr: {0}",
Class1.staticStr);
Class1 tmpObj1 = new Class1();
tmpObj1.notstaticStr = "tmpObj1";
Class1 tmpObj2 = new Class1();
tmpObj2.notstaticStr = "tmpObj2";
//非静态变量通过对象进行访问,不同对象的同一非静态变量可以有不同的值
Console.WriteLine("tmpObj1's notstaticStr: {0}",
tmpObj1.notstaticStr);
Console.WriteLine("tmpObj2's notstaticStr: {0}",
tmpObj2.notstaticStr);
Console.ReadLine();
}
}
}
--------------------------------
运行结果:
结果:
Class1's staticStr: Class
tmpObj1's notstaticStr: tmpObj1
tmpObj2's notstaticStr: tmpObj2
Reply all
Reply to author
Forward
0 new messages