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

C#静态与非静态 类,成员、结构

2017-06-01 13:31 337 查看
1、静态成员需要类名去调用

2、非静态成员需要实例化去调用

3、静态方法中,只可以访问静态成员。静态类中也只能有静态成员。

4、实例中既可以访问静态成员也可以访问非静态成员;

5、不能在静态类中声明实例成员;

6、可以在实例成员中声明静态成员;

7、静态类中的构造函数:只初始化一次,但是静态类的构造函数前面也要加static

结构与类的区别:

结构中也可以有字段、属性

结构中可以有静态方法和非静态方法;

结构与类的构造函数:

1、结构中构造函数 必须只能跟字段赋值,但是不能给属性赋值;必须跟所有的字段赋值,不能选择性的给字段赋值。

2、用new声明结构是,只做了调用构造函数;

3、结构中的构造函数:定义一个结构函数不会把原来的覆盖掉。

4、类和结构都有一个默认的无参数的构造函数;

如果只是单纯的存储数据的话,使用结构节省空间,因为数据存储在栈中,而非堆中。

如果想使用面向对象的思想开发程序,推荐使用类。因为结构不具备面向对象的特征。

竞购

static   构造函数名  {  .....   }



namespace SumOfList
{
class Program
{
static void Main(string[] args)
{
//  StaClass.add(); //静态类中不能调用非静态类
// 静态类中的方法直接通过类名调用,这里都在一个项目中,省略
StaClass.addsta();  // 第一次调用静态方法,调用之间调用构造函数
StaClass.gsta();     // 再次调用静态方法,不在调用构造函数,只调用一次
Console.ReadKey();
}
}
public static class StaClass
{
//写一个构造函数(静态类中的方法只能是静态的)
static StaClass()
{
Console.WriteLine ("这时静态类中的静态构造函数,但是只能调用一次,调用之前初始化");
}

/*
public void add()   // 这种声明是错误的,不能在静态来中声明实例成员
{
Console.WriteLine("这个是静态类中的非静态方法");
}*/
public static void addsta()
{
Console.WriteLine("这个是静态类中的静态方法");
}
public static void gsta()
{
Console.WriteLine("这是静态类中的另一个静态方法");
}
}
}


内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: