本帖最后由 xczxczxcz 于 2023-4-26 22:09 编辑
怎么偶感觉现在的微软文档和以前看过的CSDN互抄?太像了!
微软说:字符串为引用类型。这它妈是乱说的吗。在C#中字符串是值传递。会重新申请新的内存。
那么POWERSHELL中的字符串是引用类型吗?
看栗子:- # 对字符串拆装箱
- function Change_StringValue([ref][string]$s){
- $s.Value=$s.Value+"这是新增的"; #拆箱装箱
- }
-
- # 对整数拆装箱
- function Add_IntValue([ref][int]$_int){
- $_int.Value+=5; #拆箱装箱
- }
-
- # 字符串是否为引用类型
- function New-StringValue([string]$s){
- $s=$s+"这是新增的"; #无拆箱装箱
- return $s
- }
-
- $a=10;
- $str="初始值";
- $s="是否新增";
-
- Add_IntValue([ref]$a); #对$a装箱拆箱 获取新的$a
- Write-Host '$a='$a; # $a=15;
-
- Change_StringValue([ref]$str); #对$str装箱拆箱 获取新的$str
- Write-Host '$str='$str; # $str=初始值这是新增的
-
- $r=New-StringValue -s $s; #传入字符串,若是引用类型则$s会变
- Write-Host '$s='$s; # $s=是否新增;
- Write-Host '$r='$r; # $r=是否新增这是新增的 这是返回值
复制代码 这明显 字符串是值传递吗,和C#一样的。TNN的 |