您的位置:首页 > 编程语言 > C#

C#静态和非静态的区别及举例介绍

2017-12-15 14:56 639 查看
静态和非静态的区别

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# 静态与非静态