You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

PowerShell自定义类能否采用类似系统类的命名空间格式定义?

PowerShell自定义类的命名空间定义方法

当然可以给自定义类添加命名空间,但不能直接写成class <myCompany>.<myClass> {}这种格式,得用namespace关键字先声明命名空间,再在里面定义类。

举个实际的例子:

# 声明命名空间并定义类
namespace MyCompany {
    class User {
        [string]$Username
        [string]$Email
        
        [string]GetFullInfo() {
            return "用户:$($this.Username),邮箱:$($this.Email)"
        }
    }
}

调用的时候有两种方式:

  1. 使用完整的命名空间+类名:
$user = [MyCompany.User]::new()
$user.Username = "Fitzgery"
$user.Email = "test@example.com"
$user.GetFullInfo()
  1. 先导入命名空间,后续直接用类名:
using namespace MyCompany
$user2 = [User]::new()
$user2.Username = "Guest"
$user2.Email = "guest@example.com"
$user2.GetFullInfo()

另外命名空间还支持嵌套,比如定义更细分的层级:

namespace MyCompany.Utils {
    class StringHelper {
        static [string]ToUpper([string]$input) {
            return $input.ToUpper()
        }
    }
}

# 调用嵌套命名空间的类
[MyCompany.Utils.StringHelper]::ToUpper("hello")

内容的提问来源于stack exchange,提问作者Fitzgery

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.06.27 14:37:02