静态成员和非静态成员的区别?

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

同类其他面试题 点击新一篇或旧一篇可浏览全部同类面试题

新一篇:
旧一篇:

你有答案? 你对以上面试题有意见? 你想发表你的见解? 写下来吧!你的分享将会让很多人受益!

相关面试题

·C#关于String的面试题
·C#程序设计笔试题
·C#方向高级开发人员面试时应该事先考虑的问题
·C#面试题(语法,附答案)
·C#面试题

版权声明:本站大部分内容为原创! 另有少部分内容整理于网络,如需转载本站内容或关切版权事宜请联系站长。未经允许,严禁复制转载本站内容,否则将追究法律责任。 本站欢迎与同类网站建立友情链接,请联系QQ:176687814