C#:静态成员和非静态成员的区别

静态变量使用 static 修饰符进行声明,在类被实例化时创建,通过类进行访问

不带有 static 修饰符声明的变量称做非静态变量,在对象被实例化时创建,通过对象进行访问

一个类的所有实例的同一静态变量都是同一个值,同一个类的不同实例的同一非静态变量可以是不同的值

静态函数的实现里不能使用非静态成员,如非静态变量、非静态函数等


usingSystem;

usingSystem.Collections.Generic;

usingSystem.Text;

namespaceExample01

{

classProgram

{

classClass1

{

publicstaticString staticStr ="Class";

publicString notstaticStr ="Obj";

}

staticvoidMain(string[] args)

{

//静态变量通过类进行访问,该类所有实例的同一静态变量都是同一个值

Console.WriteLine("Class1's staticStr: {0}", Class1.staticStr);

Class1 tmpObj1 =newClass1();

tmpObj1.notstaticStr ="tmpObj1";

Class1 tmpObj2 =newClass1();

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

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

相关阅读更多精彩内容

  • 1. [C#语言基础]请简述拆箱和装箱。 答: 装箱操作: 值类型隐式转换为object类型或由此值类型实现的任何...
    胤醚貔貅阅读 10,337评论 1 28
  • C# 中(不同于 C++)的变量,总是需要你在访问它们前先进行初始化,否则你将遇到编译时错误。故而,不可能访问未初...
    狼之独步阅读 5,002评论 0 1
  • 1. Java基础部分 基础部分的顺序:基本语法,类相关的语法,内部类的语法,继承相关的语法,异常的语法,线程的语...
    子非鱼_t_阅读 33,782评论 18 399
  • 国家电网公司企业标准(Q/GDW)- 面向对象的用电信息数据交换协议 - 报批稿:20170802 前言: 排版 ...
    庭说阅读 14,099评论 6 13
  • Spring Cloud为开发人员提供了快速构建分布式系统中一些常见模式的工具(例如配置管理,服务发现,断路器,智...
    卡卡罗2017阅读 136,282评论 19 139

友情链接更多精彩内容