前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >c#类及其方法和属性关键字权限

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

作者头像
vv彭
发布2020-11-12 11:43:35
6830
发布2020-11-12 11:43:35
举报
文章被收录于专栏:c#学习笔记c#学习笔记

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

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

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

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

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

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

(1)静态和非静态的不同的地方,就是静态的从程序一启动就会一直占用内存,而非静态的只在使用后(实例化)后才会占用内存.但是每实例化个一个对象时又会另外占用内存. 举个例子,比如说一个数据库的连接字段(STRING).因为要经常使用到它,这时我们可以用STATIC.但是如果这时用非静态的话那就不合算了,因为每次调用到它时,又实例化一次.这样相比来说占用内存就比较大了.不划算. 像一个登录后台的方法,你只在登陆时候调用一次,就没有必要做成静态的了.那样一直驻存在内存中.在大型项目中,你如果都使用静态的那得要多少内存去支撑呀.嘿嘿 简单点,就是它经常要被调用时,就用静态的.相反则用非静态的

(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:在同一程序集和子类中访问

本文参与 腾讯云自媒体分享计划,分享自作者个人站点/博客。
原始发表:2020-11-11 ,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体分享计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档