预定义类型引用类型

C#支持两种预定义的引用类型:object 和string

名称 .NET类型 说明
object System.Object 根类型,其他类型都是从它派生而来的(包括值类型)
string System.String Unicode字符串

1.object类型

  许多编程语言和层次结构都提供了根类型,层次结构中的其他对象都从它派生而来。C#和.Net也不例外。在C#中object类型就是最终的父类型,所有内置类型和用户定义的类型都从它派生而来。这样,object类型就可以用于两个目的。

  • 可以使用object引用来绑定任何特定子类型的对象。例如使用object类型把堆栈中的值对象装箱,再移动堆中。object引用也可以用于反射,此时必须有代码来处理类型未知的对象
  • object类实现了许多一般用途的基本方法,包括Equals()、GetHashCode()、GetType() 和ToString()。用户定义的类需要使用一种面向对象技术-重写,来提供其中一些方法的替代实现代码。例如,重写ToString()时,要给类提供一个方法,给出类本身的字符提示。如果类中没有提供这些方法的实现代码,编译器就会使用object类型中的实现代码,它们在类上下文中的执行不一定正确。

1.string类型

  C#有string关键字,在遮罩下转换为.NET类System.String。有了它,像字符串连接和字符串复制这样的操作就很简单了。

string str1 = "Hello";
string str2 = "World";
string str3 = str1 + str2;

  尽管这是一个值类型的赋值,但string是一个引用类型。string对象被分配在堆上,而不是栈上。因此,当把一个字符串变量赋予另一个字符串时,会得到对内存中同一个字符串的两个引用。但是string与引用类型的常见行为有一些区别。例如,字符串是不可改变的。修改其中一个字符串,就会创建一个全新的string对象,而另一个字符串不发生任何变化。

.Net类型 引用类型的更多相关文章

  1. 30天C#基础巩固-----值类型/引用类型,泛型,空合并操作符(??),匿名方法

    一:值类型/引用类型的区别      值类型主要包括简单类型,枚举类型,和结构体类型等,值类型的实例通常被分配在线程堆栈上面变量保存的内容是实例数据本身.引用类型被分配在托管堆上,变量保存的是地址.引 ...

  2. JS基础知识(基本类型 引用类型)

    1,js中的  基本类型 引用类型  javascript中有两种变量类型:基本类型和引用类型,基本类型包括:Number.String.Undefined.Null.Boolean这五种,而引用类型 ...

  3. 数往知来C#之接口 值类型与引用类型 静态非静态 异常处理 GC垃圾回收 值类型引用类型内存分配<四>

    C# 基础接口篇 一.多态复习 使用个new来实现,使用virtual与override    -->new隐藏父类方法 根据当前类型,电泳对应的方法(成员)    -->override ...

  4. js常用API 数据类型 基本类型,基本包装类型,引用类型 Object String Array Boolean Number Date Math

    数据类型 变量.作用域及内存 基础类型(primitive value):Undefined.Null.Boolean.Number和String.这些类型在内存中分别占用固定大小的空间,他们的值保存 ...

  5. [Clr via C#读书笔记]Cp5基元类型引用类型值类型

    Cp5基元类型引用类型值类型 基元类型 编译器直接支持的类型,基元类型直接映射到FCL中存在的类型. 作者希望使用FCL类型名称而避免使用关键字.他的理由是为了更加的清晰的知道自己写的类型是哪种.但是 ...

  6. 深入C#内存管理来分析值类型&引用类型,装箱&拆箱,堆栈几个概念组合之间的区别

    C#初学者经常被问的几道辨析题,值类型与引用类型,装箱与拆箱,堆栈,这几个概念组合之间区别,看完此篇应该可以解惑. 俗话说,用思想编程的是文艺程序猿,用经验编程的是普通程序猿,用复制粘贴编程的是2B程 ...

  7. 6个重要的.NET概念:栈,堆,值类型,引用类型,装箱,拆箱

    引言 本篇文章主要介绍.NET中6个重要的概念:栈,堆,值类型,引用类型,装箱,拆箱.文章开始介绍当你声明一个变量时,编译器内部发生了什么,然后介绍两个重要的概念:栈和堆:最后介绍值类型和引用类型,并 ...

  8. js基本类型 引用类型

    参考 https://segmentfault.com/a/1190000005794070 http://blog.csdn.net/yummy_go/article/details/5050468 ...

  9. [ JS 进阶 ] 基本类型 引用类型 简单赋值 对象引用

    ECMAScirpt 变量有两种不同的数据类型:基本类型,引用类型.也有其他的叫法,比如原始类型和对象类型,拥有方法的类型和不能拥有方法的类型,还可以分为可变类型和不可变类型,其实这些叫法都是依据这两 ...

  10. JS基本类型-引用类型-深浅拷贝

    在JavaScript中变量包含两种类型的值:一种是基本类型,一种是引用类型. 基本类型包括:数值.字符串.null.undefined.布尔值引用类型包括:对象.数组.函数.正则… 补充: null ...

随机推荐

  1. 数据结构课程设计报告-C 语言整数单链表的表示和实现

    数据结构课程设计报告 专业名称:计算机科学与技术 课程名称:数据结构        实训题目:整数单链表的表示和实现                            实训环境:C 语言实现( D ...

  2. 2025年前端面试准备vue篇

      1.VUE的声明周期有哪些及每个生命周期做了什么 beforeCreate: 是new Vue() 之后触发的第一个钩子,data,methods,computed 以及watch 上的数据和方法 ...

  3. vue-quill-editor 自定义图片上传和视频上传

    安装 npm install vue-quill-editor --save 在main.js  引入 import 'quill/dist/quill.core.css' import 'quill ...

  4. Python基础:Python的变量和对象

    一.基本原理  Python中一切都是对象,变量中存放的是对象的引用.这是一个普遍的法则.我们举个例子来说,Python是如何来处理的. x = 'blue' y = 'green' z = x 当p ...

  5. python之gevent

    gevent 是一个基于协程的 Python 网络库,它使用 Greenlet 库提供了一种高效的协程实现. 协程是一种轻量级的线程,允许并发执行,但没有真正的并行性.协程可 以在遇到 I/O 操作时 ...

  6. Node.js 模拟Apache服务器

    1.知识必备 (1)当服务器响应不同文件类型时,需要设置响应报文头,让浏览器选择相应的编码解析数据. 常用对照表HTTP Mime-type: https://tool.oschina.net/com ...

  7. 一图归纳三大种类矩阵范数:诱导范数,元素范数,Schatten范数,涵盖谱范数,2范数

    转载自:https://blog.csdn.net/qq_27261889/article/details/87902480

  8. 【Vue】vite+vue3 如何实现点击进入详情页/文章页

    如上图,点击标题可以进入详情页,关键代码截图如下: 然后去配置路由 那么组件如何从地址中接收参数呢

  9. Qt编写地图综合应用22-动态轨迹

    一.前言 上一篇文章写道拿到路径规划的轨迹点坐标集合,并且已经可以通过调用addPolyline绘制线段的形式将轨迹点绘制,接下来就是要如何动态的绘制这些轨迹点,最简单的方法就是开个定时器挨个取出下一 ...

  10. DataTable 循环取值

    //list是datatable类型 for (int i = 0; i < list.Rows.Count; i++) { var A = list.Rows[i]["列名" ...