11--- 
22description : Describes how to use methods to perform actions on objects in PowerShell. 
33Locale : en-US 
4- ms.date : 03/16/2022 
4+ ms.date : 10/21/2025 
55online version : https://learn.microsoft.com/powershell/module/microsoft.powershell.core/about/about_methods?view=powershell-7.6&WT.mc_id=ps-gethelp 
66schema : 2.0.0 
77title : about_Methods 
@@ -257,44 +257,57 @@ specific overload of the **Bar** method.
257257int: 1 
258258``` 
259259
260- ## Finding what  overload was used  
260+ ## Finding which  overload was used  
261261
262- Since PowerShell 7.6, it is now possible to see what method overload was chosen
263- by PowerShell. This is achieved through the new ` MethodInvocation `  tracing
264- command.
262+ Beginning in PowerShell 7.6, you can see which method overload PowerShell chose
263+ by using ` MethodInvocation `  tracing.
265264
266- This example shows how to  use ` Trace-Command `  to display the overload chosen
267- when  calling the [ String.Split method] ( /dotnet/api/system.string.split ) .
265+ The following examples  use ` Trace-Command `  to display the overload chosen when 
266+ calling the [ String.Split method] ( xref:System.String.Split%2A ) .
268267
269268``` powershell 
270269Trace-Command -PSHost -Name MethodInvocation -Expression { 
271270    "a 1 b 1 c 1 d".Split(1) 
272271} 
272+ ``` 
273+ 
274+ In the first example, the integer ` 1 `  was converted to a ` [char] `  instead of a
275+ ` [string] ` , which results in string being split by ` [char]1 `  instead of the
276+ string ` "1" ` .
277+ 
278+ ``` Output 
279+ DEBUG: ... MethodInvocation Information: 0 : Invoking method: string[] Spli 
280+ t(char separator, System.StringSplitOptions options = System.StringSplitOpt 
281+ ions.None) 
282+ 
283+ a 1 b 1 c 1 d 
284+ ``` 
273285
286+ In the second example, the ` Split() `  method is called with the string ` "1" ` .
287+ 
288+ ``` powershell 
274289Trace-Command -PSHost -Name MethodInvocation -Expression { 
275290    "a 1 b 1 c 1 d".Split("1") 
276291} 
277292``` 
278293
279- ``` Output 
280- DEBUG: ... MethodInvocation Information: 0 : Invoking method: string[] Split(char separator, System.StringSplitOptions options = System.StringSplitOptions.None) 
294+ PowerShell chose the overload that takes a ` [string] `  separator.
281295
282- a 1 b 1 c 1 d 
296+ ``` Output 
297+ DEBUG: ... MethodInvocation Information: 0 : Invoking method: string[] Spli 
298+ t(string separator, System.StringSplitOptions options = System.StringSplitO 
299+ ptions.None) 
283300
284- DEBUG: ... MethodInvocation Information: 0 : Invoking method: string[] Split(string separator, System.StringSplitOptions options = System.StringSplitOptions.None) 
285301a 
286302 b 
287303 c 
288304 d 
289305``` 
290306
291- In the first example the ` 1 `  was casted as a ` [char] `  and not a string causing
292- the split output to split by ` [char]1 `  and not the character ` "1" ` .
293- 
294307## Using .NET methods that take filesystem paths  
295308
296309PowerShell supports multiple runspaces per process. Each runspace has its own
297- _ current directory_ . This is not  the same as the working directory of the
310+ _ current directory_ . This isn't  the same as the working directory of the
298311current process: ` [System.Environment]::CurrentDirectory ` .
299312
300313.NET methods use the process working directory. PowerShell cmdlets use the
@@ -309,4 +322,4 @@ method.
309322-  [ about_Member-Access_Enumeration] ( about_Member-Access_Enumeration.md ) 
310323-  [ about_Properties] ( about_Properties.md ) 
311324-  [ Get-Member] ( xref:Microsoft.PowerShell.Utility.Get-Member ) 
312- -  [ Trace-Command] ( xref:Microsoft.PowerShell.Utility.Trace-Command ) 
325+ -  [ Trace-Command] ( xref:Microsoft.PowerShell.Utility.Trace-Command ) 
0 commit comments