现在的位置: 首页 > 综合 > 正文

【黑马程序员】C#之静态成员

2019年09月08日 ⁄ 综合 ⁄ 共 1496字 ⁄ 字号 评论关闭

----------------------
ASP.Net+Android+IOS开发
.Net培训、期待与您交流! ----------------------


一、静态成员(static) (1) 静态成员属于类所有,非静态成员属于类的实例所有。 

(2) 每创建一个类的实例,都会在内存中为非静态成员新分配一块存储;非静态成员属于类所有,为各个类的实例所公用,无论类创建了多少实例,类的静态成员在内存中只占同一块区域。

二、静态方法 (1) 静态方法属于类所有,类实例化前即可使用。 (2) 非静态方法可以访问类中的任何成员,静态方法只能访问类中的静态成员。因为静态方法在类实例化前就可以使用,而类中的非静态变量必须在实例化之后才能分配内存,这样,静态方法调用时无法判断非静态变量使用的内存地址。所以无法使用.而静态变量的地址对类来说是固定的,故可以使用。 

三、静态构造函数 (1) 用于对静态字段、只读字段等的初始化。  (2) 添加static关键字,不能添加访问修饰符,因为静态构造函数都是  私自有的。   (3) 类的静态构造函数在给定应用程序域中至多执行一次:只有创建 类的实例或者引用类任何静态成员才激发静态构造函数 . (4) 静态构造函数是不可继承的,而且不能被直接调用。  (5) 如果类中包含用来开始执行的 Main 方法,则该类的静态构造函 数将在调用 Main 方法之前执行。任何带有初始值设定项的静态字段,则在执行该类的静态构造函数时,先要按照文本顺序执行那些初始值设定项。 (6)
如果没有编写静态构造函数,而这时类中包含带有初始值设定的静态字段,那么编译器会自动生成默认的静态构造函数。 (7) 无参数的构造函数可以与静态构造函数共存。尽管参数列表相同,但一个属于类,一个属于实例,所以不会冲突。 

注意:

静态方法可以被重载,但不能被重写

静态类不能被实例化

示例:

//创建静态成员只需加上static关键字即可

//静态方法

using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;

namespace ConsoleApplication4
{
    class Program
    {
        static void Main(string[] args)
        {
   
            person.Speak();
                
            Console.ReadKey();
        }

     
    }
    class person
    { 
       public static void Speak()
        {
            Console.WriteLine("我会说话!");
        }
    
    }
}

在这里Speak()方法只需要用类名. 即可

//静态构造函数

using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;

namespace ConsoleApplication4
{
    class Program
    {
        static void Main(string[] args)
        {
       
            person.Speak();
                
            Console.ReadKey();
        }

     
    }
    class person
    {
       static string name;
       public static void Speak()
        {
            Console.WriteLine("我会说话!");
        }

        static person()
       {
           name = "黎明";
           Console.WriteLine(name);
       }
    
    }
}

以上是静态方法和静态构造函数的简单例子!----------------------
ASP.Net+Android+IOS开发
.Net培训、期待与您交流! ----------------------

抱歉!评论已关闭.