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 相关文章推荐
PHP获取网卡地址的代码
Apr 09 PHP
使用PHP Socket写的POP3类
Oct 30 PHP
php不使用插件导出excel的简单方法
Mar 04 PHP
PHP网页游戏学习之Xnova(ogame)源码解读(十五)
Jun 30 PHP
在openSUSE42.1下编译安装PHP7 的方法
Dec 24 PHP
php实现统计目录文件大小的函数
Dec 25 PHP
46 个非常有用的 PHP 代码片段
Feb 16 PHP
PHP实现冒泡排序的简单实例
May 26 PHP
php字符串比较函数用法小结(strcmp,strcasecmp,strnatcmp及strnatcasecmp)
Jul 18 PHP
thinkphp5.1框架中容器(Container)和门面(Facade)的实现方法分析
Aug 05 PHP
laravel邮件发送的实现代码示例
Jan 31 PHP
PHP 实现base64编码文件上传出现问题详解
Sep 01 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
XAMPP升级PHP版本实现步骤解析
2020/09/04 PHP
js控制滚动条缓慢滚动到顶部实现代码
2013/03/20 Javascript
jQuery实现响应浏览器缩放大小并改变背景颜色
2014/10/31 Javascript
js绘制圆形和矩形的方法
2015/08/05 Javascript
jquery实现简易的移动端验证表单
2015/11/08 Javascript
js实现异步循环实现代码
2016/02/16 Javascript
Node.js刷新session过期时间的实现方法推荐
2016/05/18 Javascript
vue.js指令v-for使用及索引获取
2016/11/03 Javascript
JavaScript中boolean类型之三种情景实例代码
2016/11/21 Javascript
javascript 显示全局变量与隐式全局变量的区别
2017/02/09 Javascript
微信小程序 生命周期函数详解
2017/05/24 Javascript
vue.js如何更改默认端口号8080为指定端口的方法
2017/07/14 Javascript
Vue 滚动行为的具体使用方法
2017/09/13 Javascript
用React-Native+Mobx做一个迷你水果商城APP(附源码)
2017/12/25 Javascript
ztree加载完成后显示勾选节点的实现代码
2018/10/22 Javascript
Vue 中 a标签上href无法跳转的解决方式
2019/11/12 Javascript
JavaScript 中的无穷数(Infinity)详解
2020/02/13 Javascript
[52:15]2014 DOTA2国际邀请赛中国区预选赛5.21 HGT VS LGD-GAMING
2014/05/23 DOTA
python判断字符串是否包含子字符串的方法
2015/03/24 Python
Pyhton中单行和多行注释的使用方法及规范
2016/10/11 Python
TensorFlow打印tensor值的实现方法
2018/07/27 Python
Django 大文件下载实现过程解析
2019/08/01 Python
Python使用mongodb保存爬取豆瓣电影的数据过程解析
2019/08/14 Python
DataFrame.to_excel多次写入不同Sheet的实例
2019/12/02 Python
python基于TCP实现的文件下载器功能案例
2019/12/10 Python
HTML5重塑Web世界它将如何改变互联网
2012/12/17 HTML / CSS
5个你不知道的HTML5的接口介绍
2013/08/07 HTML / CSS
七匹狼男装广告词
2014/03/21 职场文书
收款委托书范本
2014/09/11 职场文书
2015年宣传部部长竞选演讲稿
2014/11/28 职场文书
出国留学导师推荐信
2015/03/26 职场文书
公司行政主管岗位职责
2015/04/09 职场文书
获奖感言一句话
2015/07/31 职场文书
JS继承最简单的理解方式
2021/03/31 Javascript
JS中一些高效的魔法运算符总结
2021/05/06 Javascript
Node实现搜索框进行模糊查询
2021/06/28 Javascript