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# WPF中CheckBox样式的使用总结

    c# WPF中CheckBox样式的使用总结

    这篇文章主要介绍了c# WPF中CheckBox样式的使用总结,帮助大家更好的理解和学习使用c#,感兴趣的朋友可以了解下
    2021-03-03
  • C#利用GDI+给图片添加文字(文字自适应矩形区域)

    C#利用GDI+给图片添加文字(文字自适应矩形区域)

    这篇文章主要给大家介绍了关于C#利用GDI+给图片添加文字(文字自适应矩形区域)的相关资料,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面来一起看看吧。
    2018-04-04
  • 如何在C#中使用指针

    如何在C#中使用指针

    这篇文章主要介绍了如何在C#中使用指针,文中代码简单易懂,帮助大家更好的工作和学习,感兴趣的朋友快来了解下
    2020-06-06
  • 设置C#窗体程序只能启动一次

    设置C#窗体程序只能启动一次

    有时候我们需要我们的软件只可以启动一次,用下面的代码就可以实现啊。
    2009-04-04
  • 详解如何在C#中处理空值

    详解如何在C#中处理空值

    在任何编程语言中开发应用程序时,经常会遇到空异常或空引用异常,那么下面让我们探讨一下在C#中处理空值的各种方法吧,需要的可以收藏下
    2023-07-07
  • Unity图形学之ShaderLab入门基础

    Unity图形学之ShaderLab入门基础

    Unity中所有Shader文件都通过一种陈述性语言进行描述,称为“ShaderLab”, 这篇文章主要介绍了Unity图形学之ShaderLab入门基础,需要的朋友可以参考下
    2022-01-01
  • c#和net存取cookies操作示例

    c#和net存取cookies操作示例

    这篇文章主要介绍了c#和net存取cookies操作示例,需要的朋友可以参考下
    2014-02-02
  • 高效C#编码优化原则

    高效C#编码优化原则

    这篇文章主要介绍了高效C#编码优化原则,非常实用,需要的朋友可以参考下
    2014-08-08
  • C# TreeView控件使用代码

    C# TreeView控件使用代码

    TreeView控件的实例代码,需要的朋友可以参考下。
    2009-09-09
  • C#逐行分元素读取记事本数据并写入数据库的方法

    C#逐行分元素读取记事本数据并写入数据库的方法

    这篇文章主要介绍了C#逐行分元素读取记事本数据并写入数据库的方法,通过StreamReader类里的ReadLine()方法实现逐行读取的功能,是非常实用的技巧,需要的朋友可以参考下
    2014-12-12

最新评论