C#静态方法与非静态方法实例分析


Posted in PHP onSeptember 22, 2014

本文实例分析了C#静态方法与非静态方法,并对其用法进行了较为全面的分析。分享给大家供大家参考。具体分析如下:

通常来说,C#的类中可以包含两种方法:静态方法和非静态方法。

使用了static 修饰符的方法为静态方法,反之则是非静态方法

静态方法是一种特殊的成员方法,它不属于类的某一个具体的实例,而是属于类本身。所以对静态方法不需要首先创建一个类的实例,而是采用 类名.静态方法 的格式 。

1)static方法是类中的一个成员方法,属于整个类,即不用创建任何对象也可以直接调用。
static内部只能出现static变量和其他static方法,而且static方法中还不能使用this等关键字,因为它是属于整个类。

2)静态方法效率上要比实例化高,静态方法的缺点是不自动进行销毁,而实例化的则可以做销毁。

3)静态方法和静态变量创建后始终使用同一块内存,而使用实例的方式会创建多个内存。

4)那么在程序中什么地方可以利用静态字段和静态构造方法,通常适用于于一些不会经常变化而又频繁使用的数据,比如连接字符串,配置信息等,当满足上面所说的两点时,进行一次读取,以后就可以方便的使用了,同时也节约了托管资源,因为对于静态成员,一个静态字段只标识一个存储位置。对一个类无论创建了多少个实例,它的静态字段永远都只有一个副本。

静态成员存在于内存,非静态成员需要实例化才会分配内存,所以静态成员不能访问非静态的成员。因为静态成员存在于内存,所以非静态成员可以直接访问类中静态的成员。公用的处理函数,使用静态方法应该没有问题,牵涉到数据共享,静态变量的函数要多考虑,静态变量要小心使用。

静态方法:
原理就是共享代码段;
共享代码段不会产生任何问题;
因为代码段都是给CPU作为"读取"用的,除非你进行恶意"修改"运行时的代码段;
所以静态方法是可以放心使用的;

静态变量:
原理就是共享数据段;
只要没有进行"写入"操作就不会产生问题,但是数据通常都是用于读和写,所以静态变量要注意使用;

下面是一个使用静态方法的简单例子:

using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;

namespace ConsoleApplication1
{
 class Program
 {
 static void Main(string[] args)
 {
  int i = MyClass.Add(7, 11); //调用静态方法
  Console.WriteLine(i);
  Console.ReadKey();
 }


 }
 class MyClass
 {

 public static int Add(int x, int y)
 {
  return x + y;
 }
 }
}
输出结果:18

希望本文所述对大家C#程序设计的学习有所帮助。

PHP 相关文章推荐
ADODB类使用
Nov 25 PHP
php&mysql 日期操作小记
Feb 27 PHP
如何使用php判断服务器是否是HTTPS连接
Jul 05 PHP
Windows和Linux中php代码调试工具Xdebug的安装与配置详解
May 08 PHP
PHP实现通过中文字符比率来判断垃圾评论的方法
Oct 20 PHP
php异常处理方法实例汇总
Jun 24 PHP
功能强大的PHP发邮件类
Aug 29 PHP
PHP实现随机生成水印图片功能
Mar 22 PHP
Yii框架实现的验证码、登录及退出功能示例
May 20 PHP
Laravel 5.5基于内置的Auth模块实现前后台登陆详解
Dec 21 PHP
PHP实现的微信APP支付功能示例【基于TP5框架】
Sep 16 PHP
Laravel5.3+框架定义API路径取消CSRF保护方法详解
Apr 06 PHP
php操作csv文件代码实例汇总
Sep 22 #PHP
PHP提示Cannot modify header information - headers already sent by解决方法
Sep 22 #PHP
php过滤HTML标签、属性等正则表达式汇总
Sep 22 #PHP
PHP中exec与system用法区别分析
Sep 22 #PHP
PHP-Java-Bridge使用笔记
Sep 22 #PHP
11个PHPer必须要了解的编程规范
Sep 22 #PHP
PHP正则替换函数preg_replace和preg_replace_callback使用总结
Sep 22 #PHP
You might like
PHP.ini中配置屏蔽错误信息显示和保存错误日志的例子
2014/05/12 PHP
自己写的兼容低于PHP 5.5版本的array_column()函数
2014/10/24 PHP
ThinkPHP的SAE开发相关注意事项详解
2016/10/09 PHP
PHP的PDO事务与自动提交
2019/01/24 PHP
可以文本显示的公告栏的js代码
2007/03/11 Javascript
JQuery 1.4 中的Ajax问题
2010/01/23 Javascript
基于jquery的一行代码轻松实现拖动效果
2010/12/28 Javascript
jQuery当鼠标悬停时放大图片的效果实例
2013/07/03 Javascript
浅析Javascript匿名函数与自执行函数
2016/02/06 Javascript
AngularJS入门教程之数据绑定用法示例
2016/11/01 Javascript
使用纯JS代码判断字符串中有多少汉字的实现方法(超简单实用)
2016/11/12 Javascript
javascript正则表达式模糊匹配IP地址功能示例
2017/01/06 Javascript
Vue.js事件处理器与表单控件绑定详解
2017/03/20 Javascript
JS实现520 表白简单代码
2018/05/21 Javascript
微信小程序实现商城倒计时
2020/11/01 Javascript
Vue脚手架编写试卷页面功能
2020/03/17 Javascript
深入了解JS之作用域和闭包
2020/06/16 Javascript
vue实现折线图 可按时间查询
2020/08/21 Javascript
[04:40]2016个国际邀请赛中国区预选赛场地——华西村观战指南
2016/06/25 DOTA
[45:52]完美世界DOTA2联赛PWL S3 Forest vs INK ICE 第二场 12.09
2020/12/12 DOTA
简单理解Python中基于生成器的状态机
2015/04/13 Python
python读取word文档的方法
2015/05/09 Python
Python无损音乐搜索引擎实现代码
2018/02/02 Python
python处理大日志文件
2019/07/23 Python
Python如何访问字符串中的值
2020/02/09 Python
Antler英国官网:购买安特丽行李箱、拉杆箱
2019/08/25 全球购物
环境科学专业个人求职的自我评价
2013/11/28 职场文书
学校后勤人员职责
2013/12/27 职场文书
机关门卫岗位职责
2013/12/30 职场文书
带薪年假请假条
2014/02/04 职场文书
教师对学生的寄语
2014/04/03 职场文书
党员群众路线承诺书
2014/05/20 职场文书
2014年廉洁自律承诺书
2014/05/26 职场文书
2015届本科毕业生自我鉴定
2014/09/27 职场文书
民主评议党员工作总结
2014/10/20 职场文书
公司周年庆寄语
2019/06/21 职场文书