c#基础知识---静态成员
2018-01-21 17:29
302 查看
我们可以使用 static 关键字把类成员定义为静态的。当我们声明一个类成员为静态时,意味着无论有多少个类的对象被创建,只会有一个该静态成员的副本。
关键字 static 意味着类中只有一个该成员的实例。
1.静态变量用于定义常量,因为它们的值可以通过直接调用类而不需要创建类的实例来获取。静态变量可在成员函数或类的定义外部进行初始化。你也可以在类的定义内部初始化静态变量。
下面的实例演示了静态变量的用法:
当上面的代码被编译和执行时,它会产生下列结果:
2.你也可以把一个成员函数声明为 static。这样的函数只能访问静态变量。静态函数在对象被创建之前就已经存在。下面的实例演示了静态函数的用法:
当上面的代码被编译和执行时,它会产生下列结果:
将类成员函数声明为public static无需实例化即可调用类成员函数
反之,如果不声明为static,即使和Main方法从属于同一个类,也必须经过实例化
关键字 static 意味着类中只有一个该成员的实例。
1.静态变量用于定义常量,因为它们的值可以通过直接调用类而不需要创建类的实例来获取。静态变量可在成员函数或类的定义外部进行初始化。你也可以在类的定义内部初始化静态变量。
下面的实例演示了静态变量的用法:
using System; namespace StaticVarApplication { class StaticVar { public static int num; public void count() { num++; } public int getNum() { return num; } } class StaticTester { static void Main(string[] args) { StaticVar s1 = new StaticVar(); StaticVar s2 = new StaticVar(); s1.count(); s1.count(); s1.count(); s2.count(); s2.count(); s2.count(); Console.WriteLine("s1 的变量 num: {0}", s1.getNum()); Console.WriteLine("s2 的变量 num: {0}", s2.getNum()); Console.ReadKey(); } } }
当上面的代码被编译和执行时,它会产生下列结果:
s1 的变量 num: 6 s2 的变量 num: 6
2.你也可以把一个成员函数声明为 static。这样的函数只能访问静态变量。静态函数在对象被创建之前就已经存在。下面的实例演示了静态函数的用法:
using System; namespace StaticVarApplication { class StaticVar { public static int num; public void count() { num++; } public static int getNum() { return num; } } class StaticTester { static void Main(string[] args) { StaticVar s = new StaticVar(); s.count(); s.count(); s.count(); Console.WriteLine("变量 num: {0}", StaticVar.getNum()); Console.ReadKey(); } } }
当上面的代码被编译和执行时,它会产生下列结果:
变量 num: 3
笔记:
将类成员函数声明为public static无需实例化即可调用类成员函数using System; namespace ConsoleApp { class Program { static void Main(string[] args) { int num = AddClass.Add(2, 3); //编译通过 Console.WriteLine(num); } } class AddClass { public static int Add(int x,int y) { return x + y; } } }
反之,如果不声明为static,即使和Main方法从属于同一个类,也必须经过实例化
using System; namespace ConsoleApp { class Program { static void Main(string[] args) { int num = Add(2, 3); //编译错误,即使改为Program.Add(2, 3);也无法通过编译 Console.WriteLine(num); } public int Add(int x, int y) { return x + y; } } } using System; namespace ConsoleApp { class Program { static void Main(string[] args) { Program self = new Program(); int num = self.Add(2, 3); //编译通过 Console.WriteLine(num); } public int Add(int x, int y) { return x + y; } } }
相关文章推荐
- C#基础知识复习1代码规范-执行流程(c#)-面向对象-引用命名空间-封装-继承-访问修饰符-虚方法-静态成员-多态-抽象类等
- C#基础知识之静态成员
- C#基础知识梳理系列三:C#类成员:常量、字段、属性
- C#基础知识梳理系列三:C#类成员:常量、字段、属性
- C#基础篇七类和静态成员
- 20151024_001_C#基础知识(静态与非静态的区别,值类型和引用类型,堆和栈的区别,字符串的不可变性,命名空间)
- c#基础知识---成员函数的用法
- C#基础知识系列六(静态类和静态类成员)
- [C#基础知识系列]全面解析C#中静态与非静态
- Java基础知识---【静态成员,封装性,包】------2015年3月6日
- C#基础——静态成员,static关键字
- C#基础知识梳理系列四:C#类成员:方法
- [C#基础知识系列]全面解析C#中静态与非静态
- C#基础知识系列六(静态类和静态类成员)
- 多态性,友元与静态成员 基础知识小结
- C#基础知识整理:基础知识(10) 静态
- C#基础知识整理:基础知识(10) 静态
- C#基础:静态成员和静态类
- C#基础知识梳理系列四:C#类成员:方法
- C#基础篇--静态成员、抽象成员、接口