当前位置:  开发笔记 > 编程语言 > 正文

电源外壳 .使用'Add-Type'定义类,声明泛型列表

如何解决《电源外壳.使用'Add-Type'定义类,声明泛型列表》经验,为你挑选了2个好方法。

我试图在PowerShell中声明List,其中Person是使用Add-Type定义的:

add-type -Language CSharpVersion3 -TypeDefinition @"
    public class Person
    {
        public Person() {}

        public string First { get; set; }
        public string Last { get; set; }
    }
"@ 

这很好用:

New-Object Person
New-Object System.Collections.Generic.List``1[System.Object]

但是这条线路失败了:

New-Object System.Collections.Generic.List``1[Person]

这有什么不对?



1> 小智..:

这是New-Object中的错误.这将有助于您更轻松地创建它们:http: //www.leeholmes.com/blog/2006/08/18/creating-generic-types-in-powershell

更新:PowerShell在版本2中添加了对此的支持:

PS > $r = New-Object "System.Collections.Generic.List[Int]"
PS > $r.Add(10)



2> Girardi..:

好吧,我试图创建一个FileStream对象列表,这是我的解决方案(基于此链接 - 实际上描述了解决问题的方法):

$fs = New-Object 'System.Collections.Generic.List[System.IO.FileStream]'
$sw = New-Object 'System.Collections.Generic.List[System.IO.StreamWriter]'
$i = 0
while ($i < 10)
{
    $fsTemp = New-Object System.IO.FileStream("$newFileName",[System.IO.FileMode]'OpenOrCreate',[System.IO.FileAccess]'Write')
    $fs.Add($fsTemp)
    $swTemp = New-Object System.IO.StreamWriter($fsTemp)
    $sw.Add($swTemp)
    $i++
}

希望有所帮助!

推荐阅读
放ch养奶牛
这个屌丝很懒,什么也没留下!
DevBox开发工具箱 | 专业的在线开发工具网站    京公网安备 11010802040832号  |  京ICP备19059560号-6
Copyright © 1998 - 2020 DevBox.CN. All Rights Reserved devBox.cn 开发工具箱 版权所有