为什么Powershell中的某些方法在其定义中使用了Interfaces

时间:2016-07-06 15:58:24

标签: powershell

我在Powershell中将文本转换为ASCII数字并且在ToByte()时遇到问题。当我查看字符串的方法时,我发现其中一些显示的是接口前缀,而大多数都没有。

有人可以告诉我这些定义之间的区别吗?为什么ToByte()IConvertible开头,但PadLeft()没有?<任何原因{ {1}}有这两种符号吗?

screenshot

1 个答案:

答案 0 :(得分:3)

因为那些具有接口名称的方法是Explicit Interface Implementations

  

如果一个类实现了两个包含一个成员的接口   相同的签名,然后在类上实现该成员将导致   两个接口都使用该成员作为其实现。

     

如果两个接口成员不执行相同的功能,   但是,这可能导致一个或两个的错误实现   的接口。可以实现接口成员   显式创建一个只通过该方法调用的类成员   接口,并且特定于该接口。这是通过   使用接口名称和句点命名类成员。

     

显式实现也用于解决两个案例   每个接口都声明了同名的不同成员,例如a   财产和方法。

您还可以在String class documentation under Explicit Interface Implementations

中看到此列表