C#静态和非静态的区别及举例介绍
2017-12-15 14:56
639 查看
静态和非静态的区别
1)、在非静态类中,既可以有实例成员,也可以有静态成员。
2)、在调用实例成员的时候,需要使用对象名.实例成员;
在调用静态成员的时候,需要使用类名.静态成员名;
总结:
静态成员必须使用类名去调用,而实例成员使用对象名调用。
静态函数中,只能访问静态成员,不允许访问实例成员。
实例函数中,既可以使用静态成员,也可以使用实例成员。
静态类中只允许有静态成员,不允许出现实例成员。
举例:
添加一个非静态类 Person
输出结果:
我是非静态的方法
我是一个静态方法
Hello World
1)、在非静态类中,既可以有实例成员,也可以有静态成员。
2)、在调用实例成员的时候,需要使用对象名.实例成员;
在调用静态成员的时候,需要使用类名.静态成员名;
总结:
静态成员必须使用类名去调用,而实例成员使用对象名调用。
静态函数中,只能访问静态成员,不允许访问实例成员。
实例函数中,既可以使用静态成员,也可以使用实例成员。
静态类中只允许有静态成员,不允许出现实例成员。
举例:
添加一个非静态类 Person
using System; using System.Collections.Generic; using System.Linq; using System.Text; using System.Threading.Tasks; namespace _03静态和非静态的区别 { public class Person //非静态类 { private static string _name; //字段 public static string Name //属性 { get { return Person._name; } set { Person._name = value; } } private char _gender; public char Gender { get { return _gender; } set { _gender = value; } } public void M1() //非静态方法 { Console.WriteLine("我是非静态的方法"); } public static void M2() //静态方法 { Console.WriteLine("我是一个静态方法"); } } }添加一个静态类 Student
using System; using System.Collections.Generic; using System.Linq; using System.Text; using System.Threading.Tasks; namespace _03静态和非静态的区别 { public static class Student { private static string _name; public static string Name { get { return Student._name; } set { Student._name = value; } } public static void S1() { Console.WriteLine("Hello World"); } //以下实例成员即使写了,也不可能被调用 // 静态类中只允许有静态成员,不允许出现实例成员 //public void S2() //{ // Console.WriteLine("我是实例的Hello World"); //} } }Program类及Main函数
using System; using System.Collections.Generic; using System.Linq; using System.Text; using System.Threading.Tasks; namespace _03静态和非静态的区别 { class Program { static void Main(string[] args) { //非静态类调用实例成员 Person p = new Person(); p.M1();//实例方法调用 Person.M2();//静态方法调用 //静态类 Student.S1();//静态类方法调用 Console.WriteLine(); Console.ReadKey(); } } }
输出结果:
我是非静态的方法
我是一个静态方法
Hello World
相关文章推荐
- C#中静态与非静态——类、方法等区别
- c#中静态与非静态的区别
- C#基础之静态和非静态的区别
- 20151024_001_C#基础知识(静态与非静态的区别,值类型和引用类型,堆和栈的区别,字符串的不可变性,命名空间)
- C#中静态和非静态的区别
- 【转】C#中静态和非静态的区别
- 静态方法加锁,和非静态方法加锁区别
- 静态成员和非静态成员的区别
- C++静态成员和非静态成员的区别
- 静态对象和非静态对象的区别
- .net中静态与非静态的区别
- 静态与非静态的区别
- C#基础之----静态成员与非静态成员
- 静态类,静态方法,静态变量与非静态之前的区别
- C# IList, ArrayList与List的区别详解 & 简单用法举例
- 【转】C#中静态方法和非静态方法的区别
- 静态和非静态成员,函数之间到底区别在哪里
- 静态与非静态区别
- java中静态与非静态的区别和加载时他们执行情况详解
- 静态成员和非静态成员的区别