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 JSON 数据解析代码
May 26 PHP
《PHP编程最快明白》第三讲:php数组
Nov 01 PHP
基于PHP5魔术常量与魔术方法的详解
Jun 13 PHP
Session服务器配置指南与使用经验的深入解析
Jun 17 PHP
php+js iframe实现上传头像界面无跳转
Apr 29 PHP
IIS6.0 开启Gzip方法及PHP Gzip函数分享
Jun 08 PHP
浅析Yii2中GridView常见操作
Apr 22 PHP
分析PHP中单双引号的误区和双引号小隐患
Jul 19 PHP
Laravel框架模板加载,分配变量及简单路由功能示例
Jun 11 PHP
Laravel 6.2 中添加了可调用容器对象的方法
Oct 22 PHP
Laravel5.1 框架Middleware中间件基本用法实例分析
Jan 04 PHP
浅析PHP中的 inet_pton 网络函数
Dec 16 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中使用Oracle数据库(6)
2006/10/09 PHP
浅谈PHP 闭包特性在实际应用中的问题
2009/10/30 PHP
ajax实现无刷新分页(php)
2010/07/18 PHP
用PHP实现小写金额转换大写金额的代码(精确到分)
2012/01/10 PHP
PHP使用imagick读取PDF生成png缩略图的两种方法
2014/03/20 PHP
php中Snoopy类用法实例
2015/06/19 PHP
yii实现model添加默认值的方法(2种方法)
2016/01/06 PHP
php制作的简单验证码识别代码
2016/01/26 PHP
PHP创建/删除/复制文件夹、文件
2016/05/03 PHP
PHP聚合式迭代器接口IteratorAggregate用法分析
2017/12/28 PHP
PHP给前端返回一个JSON对象的实例讲解
2018/05/31 PHP
如何在PHP中使用数组
2020/06/09 PHP
WordPress伪静态规则设置代码实例
2020/12/10 PHP
动态加载iframe
2006/06/16 Javascript
jquery获取一个元素下面相同子元素的个数代码
2014/07/31 Javascript
JQuery.get提交页面不跳转的解决方法
2015/01/13 Javascript
javascript中sort() 方法使用详解
2015/08/30 Javascript
Bootstrap表单布局
2016/07/19 Javascript
解决Extjs下拉框不显示的问题
2017/06/21 Javascript
Angular 开发学习之Angular CLI的安装使用
2017/12/31 Javascript
vue-cli初始化项目中使用less的方法
2018/08/09 Javascript
javascript实现超好看的3D烟花特效
2020/01/01 Javascript
PyCharm 常用快捷键和设置方法
2017/12/20 Python
django初始化数据库的实例
2018/05/27 Python
基于Django框架的权限组件rbac实例讲解
2019/08/31 Python
使用PyCharm进行远程开发和调试的实现
2019/11/04 Python
numpy按列连接两个维数不同的数组方式
2019/12/06 Python
检测tensorflow是否使用gpu进行计算的方式
2020/02/03 Python
python实现连连看游戏
2020/02/14 Python
python 发送邮件的示例代码(Python2/3都可以直接使用)
2020/12/03 Python
捷克体育用品购物网站:D-sport
2017/12/28 全球购物
暑期社会实践学生的自我评价
2014/01/09 职场文书
优质服务演讲稿
2014/05/14 职场文书
董事长助理工作职责
2014/06/08 职场文书
国际贸易实训总结
2015/08/03 职场文书
观看《信仰》心得体会
2016/01/15 职场文书