c#静态方法和非静态方法详细介绍

 更新时间:2014年02月11日 16:34:07   作者:  
这篇文章主要介绍了c#静态方法和非静态方法,需要的朋友可以参考下
C#的类中可以包含两种方法:静态方法和非静态方法。
使用了static 修饰符的方法为静态方法,反之则是非静态方法。
静态方法是一种 特殊的成员方法,它不属于类的某一个具体的实例,而是属于类本身。
所以对静态方法不需要 首先创建一个类的实例,而是采用类名.静态方法的格式 。
1.static方法是类中的一个成员方法,属于整个类,即不用创建任何对象也可以直接调用!
static内部只能出现static变量和其他static方法!而且static方法中还不能使用this....等关键字..因为它是 属于整个类!
2.静态方法效率上要比实例化高,静态方法的缺点是不自动进行销毁,而实例化的则可以做销毁。
3.静态方法和静态变量创建后始终使用同一块内存,而使用实例的方式会创建多个内存.
4.C#中的方法有两种:实例方法,静态方法. 类的方法代码只有一份,它们的生命周期和类是一致的.实例方法是通过对象名调用的,静态方法与类关联而不是 与对象名关联.
5.那么在程序中什么地方可以利用静态字段和静态构造方法,通常适用于于一些不会经常变化而又频繁使用的数 据,比如连接字符串,配置信息等,当满足上面所 说的两点时,进行一次读取,以后就可以方便的使用了,同 时也节约了托管资源,因为对于静态成员,一个静态字段只标识一个存储位置。
对一个类无论创建了多少 个实 例,它的静态字段永远都只有一个副本(副本我理解为只有一块内存 静态成员存在于内存,非静态成员需要实例化才会分配内存,所以静态成员不能访问非静态的成员..因为静态成员 存在于内存,所以非静态成员可以直接访问类中静态的成员.
公用的处理函数,使用静态方法应该没有问题..牵涉 到数据共享,静态变量的函数要多考虑...静态变量要小心使用..
静态方法 原理就是共享代码段 共享代码段不会产生任何问题 因为代码段都是给CPU作为"读取"用的,除非你进行恶意"修改"运行时的代码段 所以静态方法是可以放心使用的
静态变量 原理就是共享数据段 同上 只要没有进行"写入"操作就不会产生问题 但是数据通常都是用于读和写 所以静态变量要注意使用
下面是一个使用静态方法的例子
复制代码 代码如下:

class Class1 {
[STAThread]
static void Main(string[] args)
{
int i = MyClass.Add(3,5); //调用静态方法
Console.WriteLine(i);
}
}
class MyClass
{
public static int Add(int x,int y )
{ return x + y ;
}
}

相关文章

  • C# 当前系统时间获取及时间格式详解

    C# 当前系统时间获取及时间格式详解

    这篇文章主要介绍了C# 当前系统时间获取及时间格式详解的相关资料,这里提供代码实例,帮助大家学习参考,需要的朋友可以参考下
    2016-12-12
  • C#实现学员信息管理系统

    C#实现学员信息管理系统

    这篇文章主要为大家详细介绍了C#实现学员信息管理系统,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
    2019-06-06
  • C#获取日期的星期名称实例代码

    C#获取日期的星期名称实例代码

    本文通过实例代码给大家介绍了基于c#获取日期的星期名称,代码简单易懂,非常不错,具有一定的参考借鉴价值,需要的朋友参考下吧
    2018-08-08
  • C#结构体特性实例分析

    C#结构体特性实例分析

    这篇文章主要介绍了C#结构体特性,以实例形式较为详细的分析了C#结构体的功能、定义及相关特性,具有一定参考借鉴价值,需要的朋友可以参考下
    2015-09-09
  • C#使用Clipboard类实现剪贴板功能

    C#使用Clipboard类实现剪贴板功能

    这篇文章介绍了C#使用Clipboard类实现剪贴板功能的方法,文中通过示例代码介绍的非常详细。对大家的学习或工作具有一定的参考借鉴价值,需要的朋友可以参考下
    2022-06-06
  • C#实现的Windows剪贴板监视器功能实例【附demo源码下载】

    C#实现的Windows剪贴板监视器功能实例【附demo源码下载】

    这篇文章主要介绍了C#实现的Windows剪贴板监视器功能,结合实例形式分析了C#实现剪贴板监视功能所涉及的相关Windows API函数与使用技巧,需要的朋友可以参考下
    2016-08-08
  • c# 异步编程入门

    c# 异步编程入门

    这篇文章主要介绍了c# 异步编程入门的相关资料,帮助大家更好的理解和学习使用c#,感兴趣的朋友可以了解下
    2021-03-03
  • C# 任务的异常和延续处理

    C# 任务的异常和延续处理

    本文主要介绍了C# 任务的异常和延续处理,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2023-12-12
  • C#实现给图片添加日期信息的示例详解

    C#实现给图片添加日期信息的示例详解

    这篇文章主要为大家详细介绍了如何利用C#实现给图片添加日期信息,文中的示例代码讲解详细,对我们学习C#有一定的帮助,感兴趣的小伙伴可以了解一下
    2022-12-12
  • c#委托与事件(详解)

    c#委托与事件(详解)

    本文中,我将通过两个范例由浅入深地讲述什么是委托、为什么要使用委托、事件的由来、.Net Framework中的委托和事件、委托和事件对Observer设计模式的意义,对它们的中间代码也做了讨论
    2021-07-07

最新评论