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

确定对象类型

如何解决《确定对象类型》经验,为你挑选了1个好方法。

在这个问题中我们解决了我们的问题,但有一点我还没有学到.

以下帖子中的评论如下:

我的目标是 - 根据嵌套数组的索引调用每个文件数据并删除最后三行.所以 - $array = New-Object Sytem.Collections.Arraylist; Get-ChildItem C:\...\test | ForEach-Object { $array += ,@(Get-Content $_.FullName) }; $array[0].removerange($array[0].count-2,2) 但它会抛出错误,即无法识别removerange.我检查了 - $array[0] | gm并且删除范围的方法确实不存在.只需删除并删除.怎么办? - iamsmith41 1月11日22:14

@ iamsmith41 Get-Content返回a System.Array,而不是a System.Collections.ArrayList.前者没有RemoveRange()方法.另外,请不要移动目标.如果其中一个答案解决了您当前问题中描述的问题:请考虑接受该答案.如果您有新的或后续问题:请发布一个新问题. - Ansgar Wiechers 1月11日23:33

好.我标记了答案.但是,让我知道如何完成它(removerange()方法).提前致谢. - iamsmith41 2天前

$array += ,[Collections.ArrayList]@(Get-Content $_.FullName)应该足够了.如果您需要进一步的帮助,请发布一个新问题. - Ansgar Wiechers 2天前


如何知道我必须使用的上述对象类型Collections.ArrayList等等?怎么知道这是一个System.Array而不是System.Collections.ArrayList等等?



1> Ansgar Wiech..:

您可以通过其GetType()方法确定对象的类型:

PS C:\> (Get-Item '.').GetType()

IsPublic IsSerial Name                           BaseType
-------- -------- ----                           --------
True     True     DirectoryInfo                  System.IO.FileSystemInfo

PS C:\> (Get-Item '.').GetType().FullName
System.IO.DirectoryInfo

或者使用Get-Membercmdlet:

PS C:\> Get-Item '.' | Get-Member

   TypeName: System.IO.DirectoryInfo

Name                MemberType     Definition
----                ----------     ----------
Mode                CodeProperty   System.String Mode{get=Mode;}
Create              Method         void Create(), void Create(System.Securi...
CreateObjRef        Method         System.Runtime.Remoting.ObjRef CreateObj...
CreateSubdirectory  Method         System.IO.DirectoryInfo CreateSubdirecto...
...

前者提供关于对象的元信息,如它的名称,基本类型,其装配其从等.(管的输出GetType()Format-List *以得到一个完整的列表).

后者主要用于获取有关对象(或类的静态成员,如果使用参数-Static)的成员(属性和方法)的信息.请注意,如果你想了解一个集合的成员信息对象,你必须使用Get-Member -InputObject $col,而不是仅仅$col | Get-Member因为使用管道将展开收集,你会得到的集合元素,而不是那些集合对象本身的成员.

一旦你知道了一个课程,你通常会在文档中查找更多信息,例如通过将一个班级或成员名称输入你喜欢的搜索引擎.


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