C#静态变量与实例变量实例分析

 更新时间:2014年09月22日 10:18:07   投稿:shichen2014  
这篇文章主要介绍了C#静态变量与实例变量,是深入掌握PHP程序设计所必须掌握的重要概念,需要的朋友可以参考下

本文实例讲述了C#静态变量与实例变量的具体用法,分享给大家供大家参考。具体分析如下:

1)在语法定义上的区别:
类变量也叫静态变量,静态变量前要加static关键字,而实例变量前则不加;
实例变量也叫对象变量,即没加static 的变量;

2)在程序运行时的区别:
实例变量属于某个对象的属性,必须创建了实例对象,其中的实例变量才会被分配空间,才能使用这个实例变量。静态变量不属于某个实例对象,而是属于类,所以也称为类变量,只要程序加载了类的字节码,不用创建任何实例对象,静态变量就会被分配空间,静态变量就可以被使用了。总之,实例变量必须创建对象后才可以通过这个对象来使用。静态变量则可以直接使用类名来引用;

3)在运行表现结果的区别:
类变量和实例变量的区别在于:类变量是所有对象共有,其中一个对象将它值改变,其他对象得到的就是改变后的结果;而实例变量则属对象私有,某一个对象将其值改变,不影响其他对象;

再来看看下面这段程序:

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

namespace ConsoleApplication1
{
  class Program
  {
    static void Main(string[] args)
    {
      StaticTest A, B;//定义类的变量
      A = new StaticTest();//创建类的实例A
      B = new StaticTest();//创建类的实例B
      StaticTest.stal = StaticTest.stal + 10;//通过类名给静态变量赋值
      A.a2 = A.a2 + 10;//给实例A的成员A2赋值
      StaticTest.stal = StaticTest.stal + 10;//通过类名给静态变量赋值
      B.a2 = B.a2 + 20;//给实例B的成员赋值
      Console.WriteLine("StaticTest.stal+{0},A.a2={1}", StaticTest.stal, A.a2);//输出静态变量和实例A的成员a2的值
      Console.WriteLine("StaticTest.stal+{0},B.a2={1}", StaticTest.stal, B.a2);//输出静态变量和实例B的成员a2的值
      Console.ReadKey();
      
    }
  }
  class StaticTest
  {
    public static int stal = 10;//定义静态变量
    public int a2 = 10;//定义实例变量
  }
}

运行结果如下图所示:

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

相关文章

  • C#中可枚举类型详解

    C#中可枚举类型详解

    这篇文章主要介绍了C#中可枚举类型,IEnumerable和IEnumerator接口j及其泛型实现和迭代器,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
    2017-10-10
  • C#实现的基于二进制读写文件操作示例

    C#实现的基于二进制读写文件操作示例

    这篇文章主要介绍了C#实现的基于二进制读写文件操作,结合具体实例形式分析了C#以二进制文件流形式针对文件进行读写操作的相关技巧,需要的朋友可以参考下
    2017-07-07
  • 一个状态机的实现

    一个状态机的实现

    本文主要介绍了C#实现一个状态机的思路与方法,具有很好的参考价值,下面跟着小编一起来看下吧
    2017-02-02
  • C#实现多线程的几种方式小结

    C#实现多线程的几种方式小结

    多线程是C#中一个重要的概念,多线程指的是在同一进程中同时运行多个线程的机制,多线程适用于需要提高系统并发性、吞吐量和响应速度的场景,可以充分利用多核处理器和系统资源,提高应用程序的性能和效率,本文介绍了C#实现多线程的几种方式,需要的朋友可以参考下
    2024-07-07
  • C#实现读取和设置文件与文件夹的权限

    C#实现读取和设置文件与文件夹的权限

    这篇文章主要为大家详细介绍了如何使用C#实现读取和设置文件与文件夹的权限,文中的示例代码讲解详细,感兴趣的小伙伴可以跟随小编一起学习一下
    2024-03-03
  • c# 实现计时器功能

    c# 实现计时器功能

    这篇文章主要介绍了c# 实现计时器功能的示例代码,帮助大家更好的理解和使用c#,感兴趣的朋友可以了解下
    2020-12-12
  • c#字符串编码编码(encoding)使用方法示例

    c#字符串编码编码(encoding)使用方法示例

    System.Text提供了Encoding的抽象类,这个类提供字符串编码的方法。使Unicode字符数组的字符串,转换为指定编码的字节数组,或者反之,看下面的例子
    2013-12-12
  • C#中多态现象和多态的实现方法

    C#中多态现象和多态的实现方法

    这篇文章主要介绍了C#中多态现象和多态的实现方法,较为详细的分析了多态的原理与C#实现多态的方法,以及相关的注意事项,需要的朋友可以参考下
    2015-05-05
  • 你了解C#的协变和逆变吗,看完这篇就懂了

    你了解C#的协变和逆变吗,看完这篇就懂了

    这篇文章主要介绍了你了解C#的协变和逆变吗,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2020-05-05
  • 如何在C#中使用Dapper ORM

    如何在C#中使用Dapper ORM

    这篇文章主要介绍了如何在C#中使用Dapper ORM,帮助大家更好的理解和学习使用c#,感兴趣的朋友可以了解下
    2021-03-03

最新评论