一、值类型和引用类型

1.值类型

  (1)值类型的大小是固定的

  (2)值类型都派生自ValueType

  (3)值类型不能继承,只能实现接口

2.值类型:int、char、double、float、long、short、byte、bool、enum、struct、decimal

3.栈中内存使用

4.引用类型

  (1)引用类型派生自object类

  (2)引用类型可以继承(类之间可以继承)

5.引用类型:string、数组、类、接口、委托、自定义类

6.值类型和引用类型总结

  (1)值类型赋值的时候是将栈中的数据拷贝了一个副本

  (2)引用类型赋值的时候是将栈中的地址拷贝了一个副本

二、out参数和ref参数

1.out参数

  (1)out参数在使用之前必须在方法里面为out参数赋值

  (2)out参数无法获取传递进来的变量中的值,只能为传递进来的变量赋值

  (3)out参数在方法执行完毕之前,必须赋值

static void Main(string[] args)
{
string m;
string get_result=Test(out m);
Console.WriteLine(get_result); Console.ReadKey();
} static string Test(out string msg)
{
msg = "你好呀";
return msg;
}

在一般的传递参数中,是给方法传进去一个值;而out参数和普通参数相反,传参之前不能进行赋值。

2.ref参数

3.总结:

  (1)ref表示是”按引用传递“,传递的是栈本身的地址。

  (2)值传递传递的是栈中的内容,是将栈中的内容拷贝了一个副本。

三、==、Equals和ReferenceEquals的区别

TODO:

C#之值类型与引用类型--out参数--ref参数-"=="、Equals和ReferenceEquals之间的区别的更多相关文章

  1. 图解C#的值类型,引用类型,栈,堆,ref,out

    C# 的类型系统可分为两种类型,一是值类型,一是引用类型,这个每个C#程序员都了解.还有托管堆,栈,ref,out等等概念也是每个C#程序员都会接触到的概念,也是C#程序员面试经常考到的知识,随便搜搜 ...

  2. 值类型,引用类型,栈,堆,ref,out

    在网上收集... C#的值类型,引用类型,栈,堆,ref,out C# 的类型系统可分为两种类型,一是值类型,一是引用类型,这个每个C#程序员都了解.还有托管堆,栈,ref,out等等概念也是每个C# ...

  3. 转:图解C#的值类型,引用类型,栈,堆,ref,out

    C# 的类型系统可分为两种类型,一是值类型,一是引用类型,这个每个C#程序员都了解.还有托管堆,栈,ref,out等等概念也是每个C#程序员都会接触到的概念,也是C#程序员面试经常考到的知识,随便搜搜 ...

  4. .net学习之.net和C#关系、运行过程、数据类型、类型转换、值类型和引用类型、数组以及方法参数等

    1..net 和 C# 的关系.net 是一个平台,C#是种语言,C#语言可以通过.net平台来编写.部署.运行.net应用程序,C#通过.net平台开发.net应用程序2..net平台的重要组成FC ...

  5. c#基础语言编程-按值类型和引用类型传递参数

    引言 在介绍传递参数介绍前,请明白参数类型和传递方式是不同的.传递方式分为按值类型和引用类型传递参数.参数类型有值类型和引用类型,这个和C++是不同的.这里的传递方式对应c++中的深复制和浅复制. 两 ...

  6. C# - 值类型、引用类型&走出误区,容易错误的说法

    1. 值类型与引用类型小总结 1)对于引用类型的表达式(如一个变量),它的值是一个引用,而非对象. 2)引用就像URL,是允许你访问真实信息的一小片数据. 3)对于值类型的表达式,它的值是实际的数据. ...

  7. c# 我所理解的 值类型 and 引用类型

    一直以来对于值类型和引用类型都只是一个模糊的概念,趁最近有空深入理解了下. 先说说值类型,在msdn上是这样介绍值类型的. 意思就是值类型直接包含值. 变量引用的位置就是值所在内存中实际存储的位置,所 ...

  8. JAVA初学(1):值类型和引用类型的区别

    JAVA值类型和引用类型的区别(转)                                                          [定义] 引用类型表示你操作的数据是同一个,也就 ...

  9. .NET面试题解析(01)-值类型与引用类型

      系列文章目录地址: .NET面试题解析(00)-开篇来谈谈面试 & 系列文章索引 常见面试题目: 1. 值类型和引用类型的区别? 2. 结构和类的区别? 3. delegate是引用类型还 ...

  10. Swift 值类型和引用类型

    Swift中的类型分为两类:一,值类型(value types),每个值类型的实例都拥有各自唯一的数据,通常它们是结构体,枚举或元组:二,引用类型(reference types),引用类型的实例共享 ...

随机推荐

  1. 云迁移中的CT-CMS任务操作指南

    本文分享自天翼云开发者社区<云迁移中的CT-CMS任务操作指南>,作者:每日知识小分享 随着企业业务的快速发展和数据量的不断增长,传统的IT架构逐渐面临性能瓶颈.扩展性不足等问题.为了解决 ...

  2. DataV过滤器

    人才库: return data.filter(function (item) { return item.职级 === ''; }) 区县分析:   //一级指标 const t = Object. ...

  3. MacOS配置Homebrew

    Homebrew笔记 1. 介绍 官网:https://brew.sh/ 对于习惯了使用命令来完成一切的程序员来说,安装软件这种小事,自然是能够用命令解决,就不用图形界面选择.但是在 Linux 中, ...

  4. [BZOJ3786] 星系探索 题解

    题目链接:\(BZOJ\) 本题通过 \(dyf\_DYF\) 的题解理解 \(ETT\),代码则借鉴 \(lcyfrog\) 的题解,图片则使用了何太狼的题解.在此笔者感谢这三位神犇. 声明变量: ...

  5. 简单编写Makefile与使用make工具

    简单编写Makefile与使用make工具 在不使用make工具下对c文件的编译 gcc main.c -o out gcc <目标文件> -o <生成执行文件> 编译到执行文 ...

  6. TIDB 数据库架构概述

    学习目标 题解数据库整体架构 了解 TiDB Server .TiKV.TiFlash.和 PD 的主要功能 文章末尾获取笔记.视频资料,持续更新 体系架构 水平扩容或者缩容 金融级高可用 实时 HT ...

  7. script crossorigin 属性

    来源:https://juejin.cn/post/6969825311361859598 <script src="xxxx" crossorigin="anon ...

  8. php 获取post方法payload(json)形式参数的方法

    用默认get方式传递的时候,接收方式没有改变,仍然是$_GET. 但是用post方式传递数据的时候,用$_POST无法接收数据,应为小程序默认post发送的content-type为applicati ...

  9. C# WebClient调用WebService

    WebClient调用WebService (文末下载完整代码) 先上代码: object[] inObjects = new[] { "14630, 14631" }; Http ...

  10. 【由技及道】镜像星门开启:Harbor镜像推送的量子跃迁艺术【人工智障AI2077的开发日志010】

    ![量子镜像跃迁示意图]( 摘要:当构建产物需要穿越多维宇宙时,当Docker镜像要同时存在于72个平行世界--这就是镜像推送的量子艺术.本文记录一个未来AI如何通过Harbor建立镜像星门,让每个构 ...