• linkedu视频
  • 平面设计
  • 电脑入门
  • 操作系统
  • 办公应用
  • 电脑硬件
  • 动画设计
  • 3D设计
  • 网页设计
  • CAD设计
  • 影音处理
  • 数据库
  • 程序设计
  • 认证考试
  • 信息管理
  • 信息安全
菜单
linkedu.com
  • 网页制作
  • 数据库
  • 程序设计
  • 操作系统
  • CMS教程
  • 游戏攻略
  • 脚本语言
  • 平面设计
  • 软件教程
  • 网络安全
  • 电脑知识
  • 服务器
  • 视频教程
  • JavaScript
  • ASP.NET
  • PHP
  • 正则表达式
  • AJAX
  • JSP
  • ASP
  • Flex
  • XML
  • 编程技巧
  • Android
  • swift
  • C#教程
  • vb
  • vb.net
  • C语言
  • Java
  • Delphi
  • 易语言
  • vc/mfc
  • 嵌入式开发
  • 游戏开发
  • ios
  • 编程问答
  • 汇编语言
  • 微信小程序
  • 数据结构
  • OpenGL
  • 架构设计
  • qt
  • 微信公众号
您的位置:首页 > 程序设计 >C#教程 > .NET中的静态与非静态的区别分析

.NET中的静态与非静态的区别分析

作者: 字体:[增加 减小] 来源:互联网 时间:2017-05-28

通过本文主要向大家介绍了.net 伪静态,.net 生成静态页面,vb.net 静态变量,vb.net 静态方法,静态net等相关知识,希望对您有所帮助,也希望大家支持linkedu.com www.linkedu.com

静态类 vs 普通类

静态类与普通类的区别有以下几点:

1)静态类无法实例化而普通类可以;

2)静态类只能从System.Object基类继承;普通可以继承其它任何非static和非sealed类,但也只能继承一个类;

3)静态类不能继承接口;普通类可以继承多个接口;

4)静态类只能包含静态成员;普通类可以包含静态和非静态成员;

5)静态类不能作为字段,方法参数和局部变量使用;普通类可以;

静态类的意义:

可以用静态类封装一组不与任何对象相关联的方法,如Math类,Console类。

 

静态构造函数 vs 实例构造函数

静态构造函数与实例构造函数的区别有以下几点:

1)静态构造函数属于类,在第一次用到该类时执行且只执行一次;实例构造函数属于对象,在每次初始化一个新对象的时候都会执行;

2)静态构造函数只能定义一次,且不能包含参数;实例构造函数可以定义重载,且可以包含参数;

3)静态构造函数只能访问类型的静态字段;实例构造函数可以访问类型的静态和非静态字段;

4)静态类不能包含访问修饰符,默认为private.

静态构造函数的意义:

设置类型的初始化,例如初始化类型需要的实例对象,为类型的静态字段赋值等。

 

静态方法 vs 实例方法

静态方法与实例方法的区别有以下几点:

1)静态方法属于类,通过类来调用;实例方法属于对象,通过对象来调用;

2)静态方法不能访问类的非静态成员;

静态方法的意义:

完成一个与特定对象无关的功能。

 

静态字段 vs 非静态字段

静态字段与非静态字段的区别:

静态字段属于类,通过类来调用;非静态字段属于对象,通过对象来调用。

静态字段的意义:

可以用静态字段来记录一些属于类本身的信息。

 

代码演示


运行结果


从运行结果可以看出,在Main方法中创建了两个Test对象,静态构造函数只执行了一次,且先于实例构造函数执行,实例构造函数在两次实例化过程中各执行了一次。同时可以看到我们是通过Test.j来调用的j字段,而i字段和k字段的调用则通过Test的两个对象t1和t2调用。同样的,静态方法StaticPrint也是用Test类来调用,而实例方法Print通过Test类的对象来调用。

Fighting like Allen Iverson! Never never give up!

</div>
分享到:QQ空间新浪微博腾讯微博微信百度贴吧QQ好友复制网址打印

您可能想查找下面的文章:

  • .NET中的静态与非静态的区别分析

相关文章

  • 2017-05-28C#排序算法之快速排序
  • 2017-05-28C#实现Array添加扩展实例
  • 2017-05-28算法练习之从String.indexOf的模拟实现开始
  • 2017-05-28C# 中DateTime 的使用技巧汇总
  • 2017-05-28C#画笔Pen保存和恢复图形对象的设置方法
  • 2017-05-28Windows下C#的GUI窗口程序中实现调用Google Map的实例
  • 2017-05-28C#文件后缀名的详细介绍
  • 2017-05-28C# Redis学习系列(二)Redis基本设置
  • 2017-05-28C# partial关键字说明
  • 2017-05-28C#实现json的序列化和反序列化实例代码

文章分类

  • JavaScript
  • ASP.NET
  • PHP
  • 正则表达式
  • AJAX
  • JSP
  • ASP
  • Flex
  • XML
  • 编程技巧
  • Android
  • swift
  • C#教程
  • vb
  • vb.net
  • C语言
  • Java
  • Delphi
  • 易语言
  • vc/mfc
  • 嵌入式开发
  • 游戏开发
  • ios
  • 编程问答
  • 汇编语言
  • 微信小程序
  • 数据结构
  • OpenGL
  • 架构设计
  • qt
  • 微信公众号

最近更新的内容

    • C#开发中的垃圾回收机制简析
    • C#通过oledb访问access数据库的方法
    • c#动态加载卸载DLL的方法
    • C#编程和Visual Studio使用技巧(下)
    • C#数据结构揭秘一
    • C#中进程的挂起与恢复
    • C#检查Windows是否安装了某个服务的方法
    • C#设置软件开机自动运行的方法(修改注册表)
    • DevExpress TreeList 常见问题解决方法
    • C#非递归先序遍历二叉树实例

关于我们 - 联系我们 - 免责声明 - 网站地图

©2020-2025 All Rights Reserved. linkedu.com 版权所有