开发学院软件开发C语言 对于C#中b=a的N种情况分析 阅读

对于C#中b=a的N种情况分析

 2010-09-30 21:00:39 来源:WEB开发网   
核心提示:本文旨在验证一个容易混淆的概念,从而为《玩转WPF/Silverlight中INotifyPropertyChanged和ObservableCollection》做铺垫,对于C#中b=a的N种情况分析,两个相同类型的变量a和b,并且有如下关系:b=a;如果a发生改变,所以不管是值类型double、int还是引用类型s

本文旨在验证一个容易混淆的概念,从而为《玩转WPF/Silverlight中INotifyPropertyChanged和ObservableCollection》做铺垫。

两个相同类型的变量a和b,并且有如下关系: 

b = a;

如果a发生改变,b是否也发生改变呢?

情况很复杂,分以下几种情况谈论:

1) 单个实体

      1. 简单类型

      先考察int:

            int a = 1;
            int b = a;
            a = 2;
            Console.WriteLine("b: " + b);

      输出结果:

对于C#中b=a的N种情况分析

      再考察一下string:

            string a = "1";
            string b = a;
            a = "2";
            Console.WriteLine("b: " + b);

输出结果:

对于C#中b=a的N种情况分析

如果不放心,还可以测试一下Enum,结果类似,详见Demo。

      结论:简单类型是组成复合类型的最基本单位,是原子,不可再拆分,所以不管是值类型double、int还是引用类型string,b都不随a的改变而改变,因为它们指向全局堆栈(对于string而言是托管堆)上的同一个地址。

1 2 3 4  下一页

Tags:对于 情况 分析

编辑录入:爽爽 [复制链接] [打 印]
[]
  • 好
  • 好的评价 如果觉得好,就请您
      0%(0)
  • 差
  • 差的评价 如果觉得差,就请您
      0%(0)
赞助商链接