• 设为首页
  • 点击收藏
  • 手机版
    手机扫一扫访问
    迪恩网络手机版
  • 关注官方公众号
    微信扫一扫关注
    公众号

c#类及其方法和属性关键字权限

原作者: [db:作者] 来自: [db:来源] 收藏 邀请

学c#已经大半年了,很多东西是边学边忘,现在回顾总结一下。

 

1.首先说关键字static(静态的)

它可以修饰类、方法、属性、字段

静态类:不能实例化,直接调用,它的内部成员必须是静态的,不能包含实例构造函数,调用方式是(类名.成员名)

非静态类下的静态成员:静态方法和属性不能访问其包含类型中的非静态字段和事件,并且不能访问任何对象的实例变量,只能被重载,而不能被重写,因为静态方法不属于类的实例成员,调用时也通过(类名.成员名)方式调用

使用选择:当定义的类不需要进行实例化时,我们使用静态类;如果需要实例化对象,需要继承等特性时,应该使用非静态类,并且将统一使用的变量和方法设为静态的,那么所有实例对象都能访问。


(1)它时,又实例化一次.这样相比来说占用内存就比较大了.不划算. 像一个登录后台的方法,你只在登陆时候调用一次,就没有必要做成静态的了.那样一直驻存在内存中.在大型项目中,你如果都使用静态的那得要多少内存去支撑呀.嘿嘿 简单点,就是它经常要被调用时,就用静态的.相反则用非静态的

 

(2)静态类主要是共享,静态类内部成员必须是静态的。
静态一般在程序加载的时候被构造。
我个人用静态类最多的地方的是程序配置部分,因为他的共享特性,在多个窗体中都需要调用,更主要的就是他在程序启动的时候就被初始化了。
静态类可以有构造函数,但是只被调用一次。
就上面说的程序配置数据部分,如果使用非静态类,那么你需要在任何有可能访问到他的代码前手动初始化他,并且还要将他赋给一个静态变量后才能使用。
费事不费事另说,假若你需要在他构造前某个位置来调用它,那还需要修改你构造他的代码的位置。
非静态类使用完成后系统会自动销毁释放,所以非静态类相对来说比较安全,而静态类是在程序结束后销毁的,在销毁前一直驻留在内存中,因此出现错误的可能性会大些。

 

(3)

  • 静态成员在加载类的时候就会被加载, 并通过类进行访问.
  • 非静态成员在对象实例化时被创建, 通过对象来进行访问.

根据静态和非静态成员创建时的方式不同, 导致一个类的所有实例的同一静态变量的值是同一个. 同一个类的不同实例的同一非静态变量的值可以是不同的值. 所以你在写项目的时候, 是否可以考虑, 如果类的所有实例的一个参数都为同一个值得话, 给弄成static的好一些?

 

(4)虽然字段不能声明为 static const,但 const 字段的行为在本质上是静态的。这样的字段属于类,不属于类的实例。因此,可以同对待静态字段一样使用 ClassName.MemberName 表示法来访问 const 字段,C# 不支持静态局部变量(在方法内部定义静态变量)。

 

 

 

2.类的权限修饰符:internal(内部的)、public(公共的)

internal:只能在本程序集(项目)中访问(调用)

public:可以通过引用库的形式,在其他程序集(项目)中被调用(访问)

 

3.类的partial修饰符

该修饰符只修饰类,代表类的一部分,可以把成员分成多部分在不同的文件中编写,他们最后会合成同一个类,winform的窗口生产代码和逻辑处理代码就是在同一个类下不同文件中

 

4.成员的修饰符1:private(私有的)、public(公共的)、internal(内部的)

private:只能在本类中访问

public:和类的修饰一样

internal:和类的修饰一样

 

5.成员的修饰2:protected(受保护的)、protected internal

protected:在本类及其子类中访问

protected internal:在同一程序集和子类中访问

 


鲜花

握手

雷人

路过

鸡蛋
该文章已有0人参与评论

请发表评论

全部评论

专题导读
上一篇:
C语言博客作业--嵌套循环发布时间:2022-07-13
下一篇:
C#BitVector32发布时间:2022-07-13
热门推荐
阅读排行榜

扫描微信二维码

查看手机版网站

随时了解更新最新资讯

139-2527-9053

在线客服(服务时间 9:00~18:00)

在线QQ客服
地址:深圳市南山区西丽大学城创智工业园
电邮:jeky_zhao#qq.com
移动电话:139-2527-9053

Powered by 互联科技 X3.4© 2001-2213 极客世界.|Sitemap