假如在声明变量的时候给该变量设定好地址

.Net技术 码拜 8年前 (2016-03-01) 746次浏览
        public static int i = 100;
        private void buttonLogin_Click(object sender, EventArgs e)
        {
            string addr = getMemory(i);//获取变量内存地址;
            int b = addr;//本人希望另外声明一个int b,使其地址和i的地址一样,可以做到吗?(实际情况i是另一个类的静态变量.)
            //最终的目的是希望b变量会随着i变量的值改变而改变. 其他方法也可以.
        }
        public static string getMemory(object o) // 获取引用类型的内存地址方法
        {
            GCHandle h = GCHandle.Alloc(o, GCHandleType.Pinned);
            IntPtr addr = h.AddrOfPinnedObject();
            return "0x" + addr.ToString("X");
        }
解决方案

50

你直接使用 i不就完了嘛。

50

托管程序,变量地址是浮动的,低级的东西跟托管应用系统之间,有着浮动管理核心层。正原因是有了这些中间层,才有了虚拟托管系统的基本框架。
假如你不能理解这类系统,请回到 c 语言开发层面去编程,甚至是汇编语言开发。不能理解这些就不能很好地使用 c# 或 java 等等来搞开发设计,而是纠结底层无限浪费时间。

CodeBye 版权所有丨如未注明 , 均为原创丨本网站采用BY-NC-SA协议进行授权 , 转载请注明假如在声明变量的时候给该变量设定好地址
喜欢 (0)
[1034331897@qq.com]
分享 (0)