Yesterday, we looked at what a method is and the various ways to call them. Today we are going to look at what is called an overloaded methods. Let’s take a look at the System.String class (https://msdn.microsoft.com/en-us/library/system.string(v=vs.110).aspx). Take a look at the method for Replace.
The replace method has two implementations. If you proved two single characters, the first implementation is used. If you provide to strings, the second implementation is used.
PS C:\> $String = "You are number 1 in my book."
PS C:\> $String.Replace("1","2")
You are number 2 in my book.
PS C:\> $String.Replace("book","world")
You are number 1 in my world.
You can also utilize what are called Static Methods. Take a look at the documentation for System.Math (https://msdn.microsoft.com/en-us/library/system.math(v=vs.110).aspx)
The purple box is the icon for a method. The yellow ‘S’ means that it is a static method. In short, you can call static methods without first creating an instance of the object. In our previous example, we needed a System.Datetime object to call the AddSeconds() method on. With static methods we do not. I like System.Math a lot because it provides advanced mathematical functionality without having to write the functions myself. For example, cosine.
PS C:\> [Math]::cos(40)
We access these methods by first casting for System.Math. The System namespace is already loaded in memory by default so you only need to cast for Math. We then provide 2 colons and then the method name. Many of these methods are overloaded, so pay attention to the different ways to implement them. They will save you a lot of time.