总结C#语法中八武器(8种方法)

来源:互联网 发布:mac os x 10.7 .2 ios 编辑:程序博客网 时间:2024/05/03 16:23

C#语法中八武器(8种方法)

方法(Method)的定义:

方法是一个已命名的语句集。可以将方法视为函数或者子程序相似的东西。每个方法

都有一个名称和一个主体,方法主体包含了调用方法时实际执行的语句。可以为大多数方法提供一些数据来进行处理,并让它返回一些信息(通常是处理结果)。方法是一种基本的、功能强大的编程机制。

现已学的C#的8种方法:

1.一般的方法:

a.返回类型方法:

       格式:方法类型 方法名参数《可以没有参数》){return ;}

 b.无返回类型方法:

         格式:void 方法名(){执行代码}

2.构造函数(方法):

a.结构的构造函数:

结构struct)是值类型的(轻量级)。其值是可以拷贝的。存放在栈上,结构的构造函数必须有有参数,如要生成没有参数的结构函数只能是系统来生成的缺省结构函数,自己无法生成,结构的构造函数不会自动初始化字段,

        格式:   public 结构的名字(参数 需要初始化的变量 }  

                  构造函数名必须和结构名相同

b.类的结构函数

class)是引用类型的(重量级),其值是不能拷贝的,拷贝的是引用(地址)。存放在堆上,类的构造函数可以没有参数(类名()),系统不会自动生成缺省结构函数,类的构造函数会自动初始化字段,

        格式:   public 类的名字 参数 {需要初始化的变量}

                     构造函数名必须和类名相同

c.  抽象类的结构函数:

格式:  public 类名(){需要初始化的变量}

                      构造函数名必须和抽象类名相同

例:         B a = new B();

        不能实例化抽象类,所以只能实例化子类。用子类去调用抽象类的方法。

                        string aa = " ";

                string e = a..bb(aa);   或省略string aa=  直接string e = a.bb(aa);

  因为参数aastring类型,所以在执行方法参数也要是string类型。方法执行时bb.(aa)

  里的aa参数必须是实参,必须要赋值。

    public abstract class A

                    {public static string a;

         可以使用静态关键字生成变量,但子类是无法调用的。

                    public A()

                       { }

                 抽象类的构造函数

public abstract string bb(string aa);}

抽象方法

 public class B : A

              {public override string bb(string aa)

                      { return "";}

3.析构函数(方法):

功能:对象的铲除由析构函数来铲除。

        格式:类名(){}

        特征:析构函数不能有参数,不能任何修饰符而且不能被调用。

        注意:不能在结构中声明析构函数。

class Tally

                       public Tally( )

                        构造函数

                    {instanceCount+ +;}

                        ~Tally( )

                        析构函数

                     {instanceCount- -;}

强制启动垃圾回收器的方法:system.GC.collect();

当垃圾回收器开始工作,你的程序的其他线程都会停下来。尽量避免使用析构函数。

4.静态方法:

Static(静态关键字)

格式:public static 方法的类型 方法名参数){}

作用:需要经常重复使用的内容会使用static。

注意:加上static关键字的方法是密封且不可继承的。

5.隐藏方法:

继承中new (关键字)

功能:如果基类和子类中有2个同样的名字的方法,而此时子类的同名方法是自己的方法,并不是调用基类,为了可以区分2个方法,可以用new关键字来隐藏基类的同名的方法。实现使用子类里自己的方法。

      格式:public void fun( ){} 调用基类的方法名;

            public new void fun( ){} 子类的方法名;

   注:如果在子类里使用了new关键字,那就无法再去调用同名的基类的方法。

6.虚方法:

Virtual(关键字)

      

功能:实现基类调用子类的方法。

只有在基类才能使用(可以没有overiide),如果在基类里有virtual,但在子类里没有override则表示基类方法可以被调用覆盖,但现在不需要覆盖,如果需要可以在子类里添加override。

       格式:public virtual void fun(){}

     

Override (关键字)

          只有在子类才能使用,出现override必须要有virtual.

格式:public override void fun(){}

        注:virtual和override两个方法名称完全相同。

virtual和override两个方法具有相同的访问限制。

        virtual用在基类的方法里,override用在子类的方法里。

7.抽象方法:

      特征:抽象方法是隐式的虚方法

只允许在抽象类中使用抽象方法声明。

抽象方法声明不提供实际的实现,所以没有方法体。

方法声明只是以一个分号结束,并且在签名后没有大括号{}(没有方法体)

实现由一个重写方法override提供,此重写方法是非抽象的一个成员。

在抽象方法声明中使用static或virtual修饰是错误的。

格式:public abstract 方法名( ); 没有{}

注:抽象方法声明是无法执行方法体,所以方法体只能在抽象类的子类里去执行。

8.密封方法:

                    功能:针对虚方法(必须出现virtual)到此为止,无法再被重写。密封方法(sealed方法)是这个方法的最后一次实现。

    格式:public sealed override void 方法名( ){}

注意:密封方法不一定需要放在密封类内里。

现已学的C#的4大类:

1.一般类:

       格式:class 类名{}

2.静态类:

 Static(关键字)  

格式:static class 类名{}

作用:需要经常重复使用的内容会使用static。

注意:里面的所有成员都是静态的,都需要加上static关键字,是密封且不可继承的。

3.抽象类:

 Abstract (关键字) 

格式:abstract class 类名{}

特性:抽象类不能实例化。(不能创建对象 即无法使用new命令指定对象

抽象类可以包含抽象方法,也可以包含其他方法。

不能用sealed修饰符修改抽象类,这意味这抽象类不能被继承。(不能为子类

从抽象类派生的非抽象类必须包括继承的所有抽象方法的实现。(只能为基类

4.密封类:

  Sealed  (关键字) 

格式: sealed class 类名{}

     功能:继承到此为止,无法再被继承。   

特征:可以组织一个类成为基类。(结构为密封类)

注意:结构默认为sealed,任何情况下不能从结构继承。