C#进阶语法

静态方法:

特点:1,生命周期----一旦创建--应用结束 才会结束。2,全局

用处:用户登录信息,系统配置信息,系统设置,SQLHelper

注意:静态的东西创建多了 占用内存会很大,不是必要情况不要创建静态的对象

调用:静态方法调用非静态方法,不能直接调用要简介调用,把所在类初始化后再调用(也就是要把对象new一下才能调用),但是如果是静态方法调用静态方法(在子类上加static)则可以直接调用。

构造方法:

用处:初始化对象,或者初始化一些数据。

特点:默认是有一个无参数构造方法,可以多个并重载

析构方法:(一般不自己写)

作用:用于释放对象

谁在使用:GC垃圾回收器在调用

垃圾回收机制:

回收非托管资源--Windows窗口句柄,数据库链接,GDI对象,独占文件锁等等对象。

虚方法--virtual:

虚方法是一种允许派生类(子类)覆盖(重写)基类(父类)中的方法的技术。

作用:允许子类/派生类,进行重写 ,用于实现不一样的功能。

特点:好维护,不用更改父类原来的代码。允许子类提供不同的实现,但通过相同的接口进行访问。这可以提高代码的灵活性和可维护性。

重写方法--override

1.子类必须继承父类。

2.子类中需要定义一个与父类中要重写的方法具有相同名称,返回类型和参数列表的方法。

3.父类中被重写的方法必须使用‘virtual’或‘abstract’关键字修饰,表示该方法可以被重写。

4.子类中重写方法的访问级别不能低于基类中被重写方法的访问级别。(例如,不能由私有方法private重写为公共方法public)

抽象方法:--abstract

1.只能用于列举一个类所具备的行为,不能通过new创建对象,抽象类可以有抽象方法,只有声明部分,没有实现部分。不能使用new关键字来直接创建抽象类通常是因为抽象类通常包含一些具体的实现的方法(即抽象方法),这些方法需要在子类中被实现。因此,只有当子类实现了所有继承字抽象类的抽象方法后,子类才能被实例化。

2.只能定义在抽象类里面,在方法前面添加Abstract进行修饰

3.只能声明部分,没有实现部分

4.抽象方法在子类被实现,需要在子类的方法前面添加override关键字

5.子类必须重写所有的父类的抽象方法,除非子类也是抽象类

接口:--Interface

特点:类似于抽象基类,继承接口的任何非抽象类型都必须实现接口的所有成员,不能直接实例化接口。

接口可以包含事件,索引器,方法和属性,不包含方法的实现。

1.定义接口:

public interface IMyInterface
{
    void MyMethod();
    int MyProperty { get; set; }
}

2.实现接口:定义一个接口我们就需要一个类来实现。

public class MyClass : IMyInterface
{
    public void MyMethod()
    {
        // 实现接口中定义的方法
    }

    public int MyProperty { get; set; }
}

3.调用接口方法:

由于接口中只有方法的声明,所以您不能直接调用接口中的方法。您需要创建一个实现了该接口要的类的实例,然后通过该实例来调用方法。

IMyInterface myInterface = new MyClass();
myInterface.MyMethod();
Console.WriteLine(myInterface.MyProperty);

4.接口多重实现:

一个类可以实现多个接口,这称为多重实现

public class MyClass : IMyInterface, IAnotherInterface
{
    // 实现两个接口中定义的方法
}

5.接口继承:

接口可以继承自其他接口,创建一个新的接口,称为派生接口。

public interface IMyBaseInterface
{
    // ...
}

public interface IMyDerivedInterface : IMyBaseInterface
{
    // ...
}

6.使用接口作为类型参数:

在泛型编程中,接口可以作为类型参数使用,以创建可重用的组件。

public class GenericClass<T> where T : IMyInterface
{
    T myInterface;

    public GenericClass(T myInterface)
    {
        this.myInterface = myInterface;
    }

    public void CallMethod()
    {
        myInterface.MyMethod();
    }
}

抽象方法与接口区别使用场合:

区别:1.抽象类--单继承,接口可以多继承。

2.抽象类里可以写普通方法,虚方法等,接口只能写规范,不能写实现。

使用场合:抽象类一般用于常用不会经常改动,然后抽象范围大一些的事物,人--》男人--》女人

接口使用于--经常修改,只是一个规范的地方。

扩展方法:--ExtendMethod

定义:在静态类中,定义静态方法,也就是扩展方法

使用场合:1--调用密封类(sealed)中的对象,属性,或者方法。(扩展密封类)

                  2--扩展接口

                  3--在linq链式编程

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

有梦想的小晨

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值