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

 更新时间:2014年09月22日 10:08:07   投稿:shichen2014  
这篇文章主要介绍了C#静态方法与非静态方法,重点讲述了静态方法的实际应用,有助于进一步加深对C#程序设计的理解,需要的朋友可以参考下

本文实例分析了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 static局部静态变量和全局静态变量总结

    PHP static局部静态变量和全局静态变量总结

    使用静态局部变量的原因是它不能被外部使用,但是它的值依然在没此使用后保留。虽然使用全局变量可以实现相同的功能,但是它经常会造成意外
    2014-03-03
  • 浅谈如何提高PHP代码质量之单元测试

    浅谈如何提高PHP代码质量之单元测试

    最常见的测试软件的方法可能是编写单元测试。它们的目的是测试代码的特定单元,基于这样的假设:一切都按预期运行。为了能够编写适当的单元测试,我们的代码应该遵循一些基本的设计规则。我们应该特别关注 SOLID 原则。
    2021-05-05
  • ThinkPHP基于think-queue的队列插件实现消息推送

    ThinkPHP基于think-queue的队列插件实现消息推送

    think-queue是ThinkPHP官方提供的一个消息队列服务,是专门支持队列服务的扩展包。think-queue消息队列适用于大并发或返回结果时间比较长且需要批量操作的第三方接口,可用于短信发送、邮件发送、APP推送。
    2022-12-12
  • PHP编码转换函数 自动转换字符集支持数组转换

    PHP编码转换函数 自动转换字符集支持数组转换

    当我们在接受未知客户端提交的数据,由于各客户端的编码不统一,但在我们的服务器端最终只能以一种编码方式来处理,这种情况下就会涉及到编码转换问题
    2012-12-12
  • PHP strlen()函数用法详解

    PHP strlen()函数用法详解

    PHP中的strlen()函数用于获取字符串的长度,即字符串字符的个数,并返回该字符串中字符的数量,这个函数不考虑字符的编码,只计算字符的个数,本文就给大家详细说说PHP strlen()函数的使用方法
    2023-07-07
  • php获得当前的脚本网址

    php获得当前的脚本网址

    这篇文章介绍了php获得当前的脚本网址的方法,通过php服务器变量$_SERVER的简单判断、转换与输出,实现获取当前网址的功能,需要的朋友可以参考一下
    2007-12-12
  • PHP获取MAC地址的函数代码

    PHP获取MAC地址的函数代码

    获取网卡的MAC地址原码;目前支持WIN/LINUX系统 获取机器网卡的物理(MAC)地址
    2011-09-09
  • 功能强大的PHP图片处理类(水印、透明度、旋转)

    功能强大的PHP图片处理类(水印、透明度、旋转)

    这篇文章主要汇总介绍了php图片处理类(水印、透明度、缩放、锐化),非常的简单实用,有需要的小伙伴可以参考下
    2015-10-10
  • PHP对象相关知识总结

    PHP对象相关知识总结

    这篇文章主要介绍了PHP对象相关知识总结的相关资料,需要的朋友可以参考下
    2017-04-04
  • MayFish PHP的MVC架构的开发框架

    MayFish PHP的MVC架构的开发框架

    MayFish,一款PHP的MVC架构的开发框架。小巧精炼。欢迎大家测试和使用,欢迎大家对他的发展提出更好的建议。
    2009-08-08

最新评论