找回密码
 注册
搜索
[新手上路]批处理新手入门导读[视频教程]批处理基础视频教程[视频教程]VBS基础视频教程[批处理精品]批处理版照片整理器
[批处理精品]纯批处理备份&还原驱动[批处理精品]CMD命令50条不能说的秘密[在线下载]第三方命令行工具[在线帮助]VBScript / JScript 在线参考
查看: 14289|回复: 4

[问题求助] [已解决]PowerShell的数据类型在哪?

[复制链接]
发表于 2023-4-26 19:43:13 | 显示全部楼层 |阅读模式
请问ps的完整的数据类型在哪找?

评分

参与人数 1PB +2 收起 理由
Batcher + 2 感谢给帖子标题标注[已解决]字样

查看全部评分

发表于 2023-4-26 19:50:48 | 显示全部楼层
和c# vb.net啥的大差不差吧 毕竟殊途同归
发表于 2023-4-26 20:52:59 | 显示全部楼层
发表于 2023-4-26 22:04:47 | 显示全部楼层
本帖最后由 xczxczxcz 于 2023-4-26 22:09 编辑

怎么偶感觉现在的微软文档和以前看过的CSDN互抄?太像了!
微软说:字符串为引用类型。这它妈是乱说的吗。在C#中字符串是值传递。会重新申请新的内存。
那么POWERSHELL中的字符串是引用类型吗?
看栗子:

  1. # 对字符串拆装箱
  2. function Change_StringValue([ref][string]$s){
  3.         $s.Value=$s.Value+"这是新增的";  #拆箱装箱
  4. }

  5. # 对整数拆装箱
  6. function Add_IntValue([ref][int]$_int){
  7.         $_int.Value+=5;  #拆箱装箱
  8. }

  9. # 字符串是否为引用类型
  10. function New-StringValue([string]$s){
  11.         $s=$s+"这是新增的"; #无拆箱装箱
  12.         return $s
  13. }

  14. $a=10;
  15. $str="初始值";
  16. $s="是否新增";

  17. Add_IntValue([ref]$a); #对$a装箱拆箱 获取新的$a
  18. Write-Host '$a='$a;  # $a=15;

  19. Change_StringValue([ref]$str); #对$str装箱拆箱 获取新的$str
  20. Write-Host '$str='$str; # $str=初始值这是新增的

  21. $r=New-StringValue -s $s; #传入字符串,若是引用类型则$s会变
  22. Write-Host '$s='$s;  # $s=是否新增;
  23. Write-Host '$r='$r;  # $r=是否新增这是新增的 这是返回值
复制代码
这明显 字符串是值传递吗,和C#一样的。TNN的
发表于 2023-4-26 22:47:34 | 显示全部楼层
回复 4# xczxczxcz


会不会是原文被翻译后意思变了
您需要登录后才可以回帖 登录 | 注册

本版积分规则

Archiver|手机版|小黑屋|批处理之家 ( 渝ICP备10000708号 )

GMT+8, 2026-3-16 22:35 , Processed in 0.019260 second(s), 8 queries , File On.

Powered by Discuz! X3.5

© 2001-2026 Discuz! Team.

快速回复 返回顶部 返回列表