⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 引用类型和值类型.txt

📁 C# 是创新性的新式编程语言
💻 TXT
字号:
1.引用类型(reference type):两个对象赋值后,相互影响。(分配在托管堆上)
2.值类型(value type):两个对象赋值后,不相互影响。(分配在线程堆栈上)

两种类型就在内存中


引用类型的识别:
被称为类的类型:系统中,System.Object,System.Exception,FileStream,Random等
接口
自定义时使用class的类型


值类型的识别:
被称为结构或枚举的:系统中简单常用类型,int,bool,long...,System.DayOfWeek,IO.FileAttributes,Drawing.FontStyle
自定义时使用struct的类型


例程:

using System;
class SomeRef{public Int32 x;}//引用类型(因为'class'修饰符)
struct SomeVal{public Int32 x;}//值类型(因为'struct'修饰符)

class Hello 
{
   static void Main() 
   {
      SomeRef r1=new SomeRef();//分配在托管堆上
      SomeVal v1=new SomeVal();//分配在堆栈上
      r1.x=5;
      v1.x=5;
      
      Console.WriteLine(r1.x);//显示为5
      Console.WriteLine(v1.x);//5
      
      SomeRef r2=r1;//仅拷贝引用(指针)
      SomeVal v2=v1;//先在堆栈上分配,然后再拷贝成员
      
      r1.x=8;//改变了r1.x及r2.x
      v1.x=9;//改变了v1.x,没有改变v2.x
      
      Console.WriteLine(r1.x);//8
      Console.WriteLine(r2.x);//8
      Console.WriteLine(v1.x);//9
      Console.WriteLine(v2.x);//5
      
   }
}

值类型优点:
1.
缺点(或限制):
1.装箱和拆箱,在频繁参数传递、频繁返回值、用于ArrayList,HashTable集合中,损伤性能。
2.不能做为基类。

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -