powershell - 获取Powershell变量的内存地址

标签 powershell memory

如何在Powershell中查看变量引用的底层对象的内存地址?

在 C# 中,我可以执行如下操作,但不确定如何在 Powershell 中执行等效操作

int i;
int* pi = &i;

这样做的原因是因为下面的示例根据脚本 block 是点源还是使用调用运算符给出不同的结果。变量名称相同,并且当点源时,更新的值在脚本 block 退出后仍然保留。这让我想知道调用运算符实现是否适用于变量的副本,而点源实现则使用原始变量。

PS C:\> $n = 1;&{$n = 2};$n
1 
PS C:\> $n = 1;.{$n = 2};$n
2

如果我能做这样的事情,它可能会帮助我理解正在发生的事情......

PS C:\> $n = 1;&{$n.GetMemoryAddress()};
##########
PS C:\> $n = 1;.{$n.GetMemoryAddress()};
##########

最佳答案

如果您的真正问题是找出某个对象是否在幕后被复制,也许您不需要查看它的地址。要查明两个对象是否是完全相同的实例,您可以使用 Object.ReferenceEquals :

[System.Object]::ReferenceEquals($a, $b)

关于powershell - 获取Powershell变量的内存地址,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26037010/

相关文章:

c++ - 在c++中使用x64系统和x86应用程序分配大内存

windows - 索引E :\data using batch file下的所有文件和文件夹

xml - Powershell:如何选择和修改Xml注释?

c - 花车和多头

c - 用C反转BMP文件中像素的颜色

android - 检测Android中的应用程序堆大小

Powershell 检查 IIS 中是否存在 MIME

Powershell: boolean 函数的命名约定

powershell - Powershell计算的列中断表

javascript - 为什么 Node.js 有 1.76 Gb 的内存限制?