using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks; namespace 堆和栈
{
class Program
{
static void Main(string[] args)
{ #region 引用类型 // s : 对象的引用【存储在栈中】
//new Student() 【对象存储在堆中】
Student s = new Student();//引用类型
s.Age = 88;
Console.WriteLine("初始对象s的Age是:" + s.Age.ToString()); // 输出:88 Student s2 = s;//给引用类型赋值的时候,其实只是赋值了对象的引用【即是在栈中赋值了对象的引用,s和s2的引用地址都指向同一个堆上的地址】
s2.Age = 44;
Console.WriteLine("引用类型赋值后对象s2的Age是:" + s2.Age.ToString());// 输出:44
Console.WriteLine("引用类型赋值后对象s的Age是:" + s.Age.ToString());// 输出:44 #endregion #region 值类型 //局部变量 【存储在栈中】
int aaa = 0;//值类型
Console.WriteLine("初始aaa变量的值是:" + aaa.ToString()); // 输出:0
int aaa2 = aaa;//给值类型变量赋值的时候,是创建了一个副本(即克隆,aaa2 和aaa没一毛钱关系)
aaa2 = 99; Console.WriteLine("值类型赋值后aaa变量的值是:" + aaa.ToString()); // 输出:0
Console.WriteLine("值类型赋值后aaa2变量的值是:" + aaa2.ToString()); // 输出:99 #endregion #region 等值判断 int i = 3;
int j = 3;
Console.WriteLine("值类型等值判断:"+(i == j).ToString());// 输出:true ,值类型等值判断直接比较值本身 Student a = new Student();
a.Age = 3;
Student b = new Student();
b.Age = 3;
Console.WriteLine("引用类型等值判断:"+(a == b).ToString());// 输出:false ,引用类型等值判断的是栈中的地址,不是比较数据的本身 //引用类型变量的赋值操作,复制的是引用,即内存地址,由于赋值后二者都指向同一内存地址,所以改变其中一个,另一个也会跟着改变,二者就像绑定在了一起。
Student c = a;
Console.WriteLine("引用类型等值判断:" + (a == c).ToString());// 输出:true ,引用类型等值判断的是栈中的地址,不是比较数据的本身 #endregion Console.ReadKey(); }
}
}

  

运行结果:

C# 值类型和引用类型等值判断的更多相关文章

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

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

  2. 枚举|标志枚举+|(或)和&(与)运算|类型转换|值类型和引用类型|传参|异常|垃圾回收

    枚举部分 enum 关键字用于声明枚举,即一种由一组称为枚举数列表的命名常量组成的独特类型. 通常情况下,最好是在命名空间内直接定义枚举,以便该命名空间中的所有类都能够同样方便地访问它. 但是,还可以 ...

  3. [No0000B5]C# 类型基础 值类型和引用类型 及其 对象判等 深入研究1

    引言 本文之初的目的是讲述设计模式中的 Prototype(原型)模式,但是如果想较清楚地弄明白这个模式,需要了解对象克隆(Object Clone),Clone其实也就是对象复制.复制又分为了浅度复 ...

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

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

  5. Swift 值类型和引用类型

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

  6. 04.C#类型系统、值类型和引用类型(二章2.2-2.3)

    今天要写的东西都是书中一些概念性的东西,就当抄笔记,以提问对话的方式将其写出来吧,说不定以后面试能有点谈资~~~ Q1.C#1系统类型包含哪三点特性? A1.C#1类型系统是静态的.显式的和安全的. ...

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

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

  8. .NET六大剑客:栈、堆、值类型、引用类型、装箱和拆箱

    .NET六大剑客:栈.堆.值类型.引用类型.装箱和拆箱 一.“堆”,“栈”专区 这两个字我相信大家太熟悉了,甚至于米饭是什么?不知道...“堆”,“栈”是什么?哦,这个知道... 之前我也写过一篇堆栈 ...

  9. c#1所搭建的核心基础之值类型和引用类型

    这个主题很重要,在.NET中做的一切其实都是在和一个值类型或者引用类型打交道. 现实世界中的值和引用 假定你在读一份非常棒的东西,希望一个朋友也去读他.于是你到复印室里复印了一份.这个时候他获得了属于 ...

随机推荐

  1. js如何将汉字转化为拼音

    github地址,上面有封装好的转换工具:https://github.com/sxei/pinyinjs 里面有几个库,根据功能,库的文件大小也不一样,可以根据需求去引入使用. 里面封装好了方法: ...

  2. lnmp环境脚本快速搭建

    进入lnmp官网 https://lnmp.org/download.html 如图: 进入Linux服务器并执行wget命令下载 wget http://soft.vpser.net/lnmp/ln ...

  3. SQL学习回顾

    --本文源自<黑马程序员>

  4. Mac复制粘贴文本时默认使用无格式模式

    参考:How to Paste Everything as Plain Text 写文章的时候,用的最多的就是copy和paste了,可是现在Mac和Win默认都是会连格式一起复制,真是逆天,导致每次 ...

  5. Netty 读写检测机制(心跳)

    一.创建服务端 1.MyServer 类 public class MyServer { public static void main(String[] args) throws Exception ...

  6. CNeo编程语言概述

    C语言诞生于1970年,当时在AT&T实验室由Dennis Ritchie主导开发的.据说当时仅用了一周的时间就做好了C语言编译器,所以尽管C语言从90年正式纳入ISO标准委员会,其编号为IS ...

  7. linux环境中,openssl升级及openresty中nginx基于新版本openssl重新编译

    需求说明: 最近在对系统进行安全扫描的时候,出现了openssl版本的问题,建议对openssl版本进行升级,在此记录下升级过程. 环境说明: 操作系统:RHEL 6.6 升级操作过程: 1.下载最新 ...

  8. [LeetCode] 34. Search for a Range 搜索一个范围(Find First and Last Position of Element in Sorted Array)

    原题目:Search for a Range, 现在题目改为: 34. Find First and Last Position of Element in Sorted Array Given an ...

  9. 最新 大众书网java校招面经 (含整理过的面试题大全)

    从6月到10月,经过4个月努力和坚持,自己有幸拿到了网易雷火.京东.去哪儿.大众书网等10家互联网公司的校招Offer,因为某些自身原因最终选择了大众书网.6.7月主要是做系统复习.项目复盘.Leet ...

  10. Nginx是什么及作用?代理和反向代理解析

    一:介绍 nginx是一个高性能的HTTP和反向代理服务器,其特点是占用内存少,并发能力强. 二:名词介绍 代理服务器: 代理服务器英文全称是Proxy Server,其功能就是代理网络用户去取得网络 ...