C#使用Runtime.InteropServices打印变量的

作者: Zok93吖 | 来源:发表于2016-11-08 17:48 被阅读67次
  • 以前不管是在C还是OC语言以及swift中还是其他语言中,当我们认为两个变量使用的是同一块内存地址的时候
  • 最简单的方法就是直接打印地址,然而在C#中,打印地址却变得不那么容易了
    首先,需要引入System.Runtime.InteropServices;
    之后才能使用使用一些手段进行地址的打印
using System;  
// 获取地址需要引入的库  
using System.Runtime.InteropServices;   
  
class MainClass  
{  
    public static string getMemory(object o) // 获取引用类型的内存地址方法  
    {  
        GCHandle h = GCHandle.Alloc(o, GCHandleType.Pinned);  
        IntPtr addr = h.AddrOfPinnedObject();  
        return "0x" + addr.ToString("X");  
    }  
  
    public static void Main (string[] args)  
    {  
  
        int[] a = new int[1];  
        int[] b = new int[1];  
        // b=0 ,未赋值前b的地址是:0x8008E8  
        Console.WriteLine("b={0,-2},未赋值前b的地址是:{1}",  b[0],getMemory(b));  
        a[0] = 3;  
        b = a;// 此句赋值是b引用a的地址,此时a和b表示同一个内存空间地址  
        b[0] = 33;  
  
        // b=33,赋值后b的地址是:0x8008D0  
        Console.WriteLine("b={0},赋值后b的地址是:{1}",  b[0],getMemory(b));  
  
        // a=33,a的地址是:0x8008D0  
        Console.WriteLine("a={0},a的地址是:{1}",  a[0],getMemory(a));  
    }  
}  

相关文章

  • C#使用Runtime.InteropServices打印变量的

    以前不管是在C还是OC语言以及swift中还是其他语言中,当我们认为两个变量使用的是同一块内存地址的时候 最简单的...

  • C#图形文字打印预览的实例

    一、C#窗体打印组件 Windows 窗体中的打印主要包括: 使用PrintDocument 组件来使用户能够打印...

  • 你不得不知道的chrome调试技巧

    使用console,总是打印对象 在使用console.log();的时候,不仅仅打印变量,而是要打印对象,用大括...

  • python入门基础语法总结

    定义变量,使用变量 input 用户自己输入值print 打印值 可以输出多个变量%d|%s 用于输出变量时...

  • 这应该是最详细的Python入门基础语法总结!

    定义变量,使用变量 input 用户自己输入值 print 打印值 可以输出多个变量 %d|%s 用于输出变量时占...

  • C# 使用unsafe非托管代码测试

    C#使用托管平台,不允许操作变量地址,实际可以在获取变量的地址的,修改地址变量指向的值,也即修改了变量的值。 如下...

  • Swift 基础语法

    常量和变量的声明 多个变量同时声明 显示指定变量类型 字符串插值打印法 类型转换的使用 别名的使用 Bool类型的...

  • C#语言入门详解006

    006 C#类型、变量与对象详解 目录 *什么是类型*类型在C#语言中的作用*C#语言的类型系统*变量、对象与内存...

  • Lua与C#的交互实现

    lua与C#交互使用LuaInterface实现定义变量:1,Lua lua = new Lua() --定义一个...

  • shell

    变量相关 可以使用echo打印变量值,格式如echo $name 申明变量采用键值对的方式,如key=value。...

网友评论

    本文标题:C#使用Runtime.InteropServices打印变量的

    本文链接:https://www.haomeiwen.com/subject/lezauttx.html