string的创建

string为引用类型,但是他的创建是特殊的,
他直接赋值的话,是现在内存中去寻找有没有一样的,当有的情况下则是讲地址赋值过去,当没有一样的则会重新去内存中创建一个
代码如下:

        static void Main(string[] args){string s1 = new string("1");string s2 = "1";string s3 = "1";string s4 = new string("1");string s5 = "2";var addr1 = getMemory(s1);var addr2 = getMemory(s2);var addr3 = getMemory(s3);var addr4 = getMemory(s4);var addr5 = getMemory(s5);s3 = "2";var addr6 = getMemory(s3);Console.WriteLine($"地址1:{addr1} 地址2:{addr2} 地址3:{addr3} 地址4:{addr4} 地址5:{addr5} 地址6:{addr6}");}public static string getMemory(object o) // 获取引用类型的内存地址方法    {// GCHandle h = GCHandle.Alloc(o, GCHandleType.WeakTrackResurrection);//IntPtr addr = GCHandle.ToIntPtr(h);GCHandle h = GCHandle.Alloc(o, GCHandleType.Pinned);IntPtr addr = h.AddrOfPinnedObject();return "0x" + addr.ToString("X");}

在这里插入图片描述

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.hqwc.cn/news/578866.html

如若内容造成侵权/违法违规/事实不符,请联系编程知识网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

图片标注编辑平台搭建系列教程(4)——fabric几何定制渲染

背景 标注的几何,有时需要一些定制化的渲染样式,例如,线中间展示箭头,表示方向。本期教程教大家如何实现fabric几何定制化渲染。 带箭头的线 fabric提供了一些原生的几何,例如Point、Polyline、Polygon。同时提供了…

EditStarters使用

1、需要的插件,引入maven依赖快速 在maven页面右击 点击editstarters 点击ok 找我们需要的依赖

(一)kafka实战——kafka源码编译启动

前言 本节内容是关于kafka消息中间键的源码编译,并通过idea工具实现kafka服务器的启动,使用的kafka源码版本是3.6.1,由于kafka源码是通过gradle编译的,以及服务器是通过scala语言实现,我们要预先安装好gradle编译工具…

FreeRTOS day1

1.总结keil5下载代码和编译代码需要注意的事项 需要与板子连通 配置完成后才点击下载 2.总结STM32Cubemx的使用方法和需要注意的事项 下载支持包 打开芯片配置界面 3.总结STM32Cubemx配置GPIO的方法

蓝桥OJ 6003递归函数 (快速幂)

递归函数 通过这道题学习了快速幂思想 以下是我简单的总结,帮助我复习回顾: 如果指数为奇数,收集current底数后,指数除以2,底数翻倍,继续循环 如果指数为偶数,直接指数除以2,底数翻倍,继续循环 #include<bits/stdc.h> using namespace std; using ll long long; const …

什么是超声波清洗机?六大超声波清洗机必读干货分享指南

传统的清洁方式往往难以满足高效、高质量的需求&#xff0c;这时&#xff0c;超声波清洗机就显得格外重要。但什么是超声波清洗机&#xff1f;为什么它能在众多清洁设备中脱颖而出&#xff1f;接下来&#xff0c;我们将通过六大必读干货&#xff0c;一探究竟&#xff0c;开启清…

JavaScript练手小技巧:仿米哈游官网人物跟随鼠标位移效果

最近&#xff0c;有同学找到我&#xff0c;说&#xff1a;老师&#xff0c;我想模仿米哈游官网。 我说&#xff1a;可以&#xff0c;很不错的。 她说&#xff1a;有些效果有点难&#xff0c;能不能帮我看下。 于是&#xff0c;我就简单大概粗糙的讲解了下大致的原理&#xf…

网络安全入门 5 天速成教程_ WEB 安全渗透攻防技术

前言 随着 Web 技术发展越来越成熟&#xff0c;而非 Web 服务越来越少的暴露在互联网上&#xff0c;现在互联网安全主要指的是 Web 安全。 为了自身不“裸奔”在大数据里&#xff0c;渐渐开始学习 Web 安全&#xff0c;在学习 Web 安全的过程中&#xff0c;发现很大一部分知识…

【Git项目部署到本地仓库】

1. 下载安装Git 根据您的操作系统&#xff0c;访问Git的官方网站&#xff1a;https://git-scm.com/download/win 具体安装教程请访问其他博客&#xff0c;例如&#xff1a;http://t.csdnimg.cn/I28VO 安装完成后&#xff0c;您可以通过在winR键输入cmd打开命令行输入 git -…

高架学习笔记之UML图概要

目录 零、什么是UML图 一、类图 二、对象图 三、构件图 四、部署图 五、制品图 六、包图 七、组合结构图 八、用例图 九、序列图 十、通信图 十一、状态图 十二、活动图 十三、定时图 十四、交互概览图 零、什么是UML图 统一建模语言&#xff08;Unified Modeli…

SinoDB数据库导入导出工具onunload/onload

onunload以二进制形式将数据库或表写到磁带上或磁盘上。当写到磁盘时&#xff0c;以磁盘页为单位卸下数据&#xff0c;这种方式卸下的数据其效率高于dbexport。 1.onunload语法 onunload [-l] [-t <tape_device>] [-b <block size>] [-s <tape size>] <…

微服务demo(四)nacosfeigngateway

一、gateway使用&#xff1a; 1、集成方法 1.1、pom依赖&#xff1a; 建议&#xff1a;gateway模块的pom不要去继承父工程的pom&#xff0c;父工程的pom依赖太多&#xff0c;极大可能会导致运行报错&#xff0c;新建gateway子工程后&#xff0c;pom父类就采用默认的spring-b…