Beginning with PowerShell 4.0, method names may come from variables. Here's a simple example:- $method = 'ToUpper'
- 'Hello'.$method()
复制代码 This can be useful when the method you want to use depends on something a script would need to figure out first.- function Convert-Text
- {
- param
- (
- [Parameter(Mandatory)]
- $Text,
- [Switch]$ToUpper
- )
-
- if ($ToUpper)
- {
- $method = 'ToUpper'
- }
- else
- {
- $method = 'ToLower'
- }
- $text.$method()
- }
复制代码 And this is how a user would call the function:
PS> Convert-Text 'Hello'
hello
PS> Convert-Text 'Hello' -ToUpper
HELLO
|
By default, the function would convert text to lower case. When the switch parameter -ToUpper is specified, it converts the text to upper case instead. Thanks to dynamic methods, the function won't need separate code blocks for this.
http://powershell.com/cs/blogs/tips/archive/2013/11/05/dynamic-methods-in-powershell-4.aspx |