
Introduction to Methods in C#
- Methods in C#, also called Functions, are extremely useful in optimizing the code, normally used to create a logic once and use it repeatedly.
 - It happens in projects where you need to do a similar job at various places of your code.
 
- In such conditions, it's wise to create a small function of your repeated code and instead of adding those lines again and again, simply call the function.
 - Here's the syntax of Methods in C#:
 
Access-Modifiers Return-Type Method-Name ( Parameters ) { // Method-Body } public void HelloWorld(){ Console.Write("Hello World !!!"); }
- Access-Modifiers: Access Modifiers are used to control access capability of any method / function. You can set them public, protected or private etc. We will discuss them later in detail.
 - Return-Type: It decides what the method is gonna return, it could be void or any data type i.e. int, float, string etc.
 - Method-Name: It's the unique name of the Method / Function, which can't be any reserved keywords in C#. It's should be meaningful so you can remember later.
 - Parameters: Parameters are optional and are normally used to transfer data between methods.
 - There are two types of methods available in C#, which are:
- Instance Method.
 - Static Method.
 
 - Let's discuss both of them separately, in detail:
 
Instance Method in C#
- Those methods, which doesn't have static keyword in their definition are called Instance Methods in C#.
 - In order to call instance method in another method, we have to first create a new instance of that method and the invoke the method using dot operator.
 - Let's have a look at how to create and call an instance method in C#:
 

- You must have realized by now that all the work we have been doing so far was in Main Method. That's the default method, the C# compiler first goes into and it's a static method as it has static keyword in it, which will discuss next.
 - So, now in above figure, I have created a new method and I have used public (access-modifier) and void (return-type) and the Method-Name is PrintNames. I am using studentsNames array as a parameter.
 - I have used the same code which we have designed in our previous lecture on For Loop in C#, so I have placed the foreach loop in my newly created instance method named PrintNames.
 - Now in order to call this new method in Main method, I have to first create a new instance of this method's class and you must have noticed that the class name is Program at the top.
 - Both of our Main & PrintNames Methods are placed inside Program class.
 - So, in our Main function, I have first created a new instance of my class Program using new keyword:
 
Program P = new Program ( );
- After that, using this class instance P, I have invoked the PrintNames method using dot operator ( . ).
 
P.PrintNames ( studentsNames ) ;
- When you are calling your method, make sure you enter the parameters correctly as specified in its definition otherwise compiler will generate an error.
 - You can specify multiple parameters separated by commas.
 - So, that's how we can create and call an instance method, so now let's have a look at How to call static method in C#.
 
Static Method in C#
- Those methods, which have static keyword in its definition are called static methods in C#.
 - In order to call a static method, we don't need to create a new instance of Program class.
 - Instead, we can directly invoke a static method from Program class using dot operator ( . ), as shown in below figure:
 

- In above figure, I have created a new method called PrintNames2 and I have used static keyword in its definition, so its a static method in C#.
 - So, now in order to call that method, I have used the name of class and then invoked the method using dot operator, using below code:
 
Program.PrintNames2 ( stringNames );
- We don't need to create a new instance of class for static method, that's the difference between static and instance methods in C#.