C#每天复习一个重要小知识day7:静态函数中不能“无中生有”

目录

静态函数中调用非静态成员不能“无中生有”

静态函数无法进行实例化

非静态函数可以调用静态成员


静态函数中调用非静态成员不能“无中生有”

在C#中,静态函数(也称为静态方法)是属于类的,而不是属于类的实例。

因此,静态函数不能直接访问类的实例成员(非静态成员),例如实例字段或实例方法,因为这些成员是与特定对象实例相关联的,不能没实例就直接调用,不能“无中生有”。

如果要在静态函数中访问非静态成员,你需要创建一个对象实例,并通过该实例来访问非静态成员。

public class MyClass
{
    public int InstanceField;

    public static void StaticMethod()
    {
        // 无法直接访问 InstanceField
        // 需要通过对象实例来访问
        MyClass obj = new MyClass();
        obj.InstanceField = 10;
    }
}
静态函数无法进行实例化来调用

但是要记着静态函数是属于类的,而不是属于类的实例。因此,不能使用类的实例来调用静态函数。需要通过类名来调用静态函数,例如:ClassName.StaticFunction()要记着,静态函数可无法进行实例化来调用噢。

(还有,静态类是一种特殊类型的类,它只包含静态成员,不能创建实例。)

非静态函数可以调用静态成员

因为首先非静态函数它要调用的话肯定是已经实例化了,没毛病。

而静态成员是属于类的,而不是属于类的实例。那就可以在非静态函数中直接通过类名访问静态成员,就像在静态函数中一样。

其次静态成员是属于长周期的,短周期调用长周期肯定是🆗的。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值