当前位置:编程学习 > C#/ASP.NET >>

关于C#语言的一个小问题

大家问下 就是为什么静态方法不能调用类里面不是静态的字段,
还有为什么喔不能在一个类中的函数中吧令一个类的this传进来 他说什么静态的字段无法条用请大家讲解下 --------------------编程问答-------------------- C#静态方法属于类所有,因为静态方法在类实例化前就可以使用,而类中的非静态变量必须在实例化之后才能分配内存,C#静态方法调用时无法判断非静态变量使用的内存地址,所以无法使用。而静态变量的地址对类来说是固定的,故可以使用。

--------------------编程问答-------------------- 非静态字段属于对象,而不是类。 --------------------编程问答-------------------- 无论对象产生与否,静态变量和方法就存在;而非静态的方法和变量,只有对象产生了以后系统才会分配内存,所以静态方法不能使用非静态的变量,因为这个变量在实例产生之前不存在。
--------------------编程问答-------------------- 路过学习。
我有一疑问:既然静态域或方法不需要实例化,是不是在程序中能用静态的时候尽量用静态的域或方法,那样调用时减少实例化呢? --------------------编程问答-------------------- 静态方法是直接给内存地址的,非静态的方法和变量 必须实例化后系统才会分配内存地址,才能被使用 --------------------编程问答--------------------
引用 4 楼 yanele 的回复:
路过学习。
我有一疑问:既然静态域或方法不需要实例化,是不是在程序中能用静态的时候尽量用静态的域或方法,那样调用时减少实例化呢?


个人观点:
静态方法出现, 是因为:
我们有时候就偏偏不需要面向对象, 我就是要写个过程。
但是没有类, 又 不让写!

于是就只好挂在类上叫静态方法了。 --------------------编程问答-------------------- 那不知道,编程时使用静态的域或方法的情况多还是少? --------------------编程问答-------------------- 或者说那种方法(使用与不使用静态)更合理一些! --------------------编程问答-------------------- 像程序中经常用到的工具类可以使用静态方法,由于不需要实例化,直接调用,效率高。由于静态成员在类载入时就载入内存,在进程退出内存才会被释放。使用实例成员还是静态成员在这方面要有一个权衡。
还有重要的一点就是,实例成员可以有多个。 --------------------编程问答-------------------- 像数据库访问,这样的类使用静态的比较好
补充:.NET技术 ,  C#
CopyRight © 2012 站长网 编程知识问答 www.zzzyk.com All Rights Reserved
部份技术文章来自网络,