A
method
is a kind of building block that solves a small problem
The Main() you are using to execute your app is a method
Also known as functions, procedures, etc.
static void PrintLogo() // PrintLogo is the method's name
{
Console.WriteLine("Telerik Academy");
Console.WriteLine("https://telerikacademy.com");
}
PrintLogo is the method name
void is the return type of the method
static will be explained in later lectures
between { and } is the method body
When you see something called with () in C# it is a method
Methods in C# (Java) could not exist without a class
// class definition
class Program
{
// method definition
static void Main()
{
Console.WriteLine("Hello World!");
}
}
// class definition
class Program
{
// method definition
static void Main()
{
Console.WriteLine("Hello World!");
}
}
There must be only one Main() method in a program
It is the entry point of your program
string myText = "Pesho is attending Alpha every day.";
All the blue boxes are methods (functions) of the class String
The wrench icon means it is a property
Properties are just like methods (later in the lectures)
Methods could have parameters or not
Parameters are passed and the method could use them
// Method without parameter
static void PrintMessage()
{
Console.WriteLine("Telerik Academy");
}
// Method WITH parameter
static void PrintMessage(string message)
{
Console.WriteLine(message);
}
There could be many parameters
Every parameter should have type and a name
// Method with one parameter
static void PrintMessage(string message)
{
Console.WriteLine(message);
}
// Method with two parameters
static void PrintMessage(string message, int number)
{
for (int i = 0; i < number; i++)
{
Console.WriteLine(message);
}
}
Call the method and pass parameters (if any)
class Program
{
static void Main()
{
PrintMessage();
PrintMessage("Telerik Academy passed as parameter");
}
static void PrintMessage()
{
Console.WriteLine("Telerik Academy");
}
static void PrintMessage(string message)
{
Console.WriteLine(message);
}
}
NOTE: These two methods could exist simultaneously
This is called method overloading
// Method with one parameter
static void PrintMessage(string message)
{
Console.WriteLine(message);
}
// Method with two parameters
static void PrintMessage(string message, int number)
{
for (int i = 0; i < number; i++)
{
Console.WriteLine(message);
}
}
There could be multiple methods with the same name
but they have to receive different number and/or types of parameters
// Method with one parameter
static void PrintMessage(string message)
{
Console.WriteLine(message);
}
// Method with one parameter but the same type
static void PrintMessage(string msg)
{
Console.WriteLine(msg);
}
The same parameter type and number of parameters.
It doesn't matter if the name is different.
There could be multiple methods with the same name
but they have to receive different number and/or types of parameters
// Method with one parameter
static void PrintSomething(string message)
{
Console.WriteLine(message);
}
// Method with one parameter but from different type
static void PrintSomething(int number)
{
Console.WriteLine(number);
}
Some parameters can be declared optional
that happens when you set them a default value
only the last parameters can be optional
class Program
{
static void Main()
{
PrintMessage(); // This will print Telerik Academy
PrintMessage("Hello"); // This will print Hello
}
// Method with optional parameter
static void PrintMessage(string message = "Telerik Academy")
{
Console.WriteLine(message);
}
}
Every method could return a value or not
void - the method does not return anything. It just makes something
class Program
{
static void Main()
{
PrintMessage(); // This will print Telerik Academy
}
static void PrintMessage()
{
Console.WriteLine("Telerik Academy");
}
}
Every method could return a value or not
any type - the method must return object of that type
class Program
{
static void Main()
{
string upperCaseMessage = UpperCaseLetters("Telerik Academy");
Console.WriteLine(upperCaseMessage); // prints TELERIK ACADEMY
}
// return type string
static string UpperCaseLetters(string message)
{
// ToUpper() is a method of the String class
return message.ToUpper();
}
}
return keyword exits the method and returns a value
if the method is void the return keyword just exits the method
anything after return will not be executed
class Program
{
static void Main()
{
PrintMessage("TelerikAcademy");
}
static void PrintMessage(string message)
{
return; // anything below this line will not be executed
Console.WriteLine(message); // Unreachable code detected warning
}
}
params - you can specify a method parameter that takes a variable number of arguments
class Program
{
static void Main()
{
PrintMessage("TelerikAcademy", "test");
}
static void PrintMessage(params string[] arr)
{
foreach (var line in arr)
{
Console.WriteLine(line);
}
}
}
It could be comma-separated list of arguments of the type specified in the parameter declaration
It could be an array of arguments of the specified type
You also can send no arguments
params must be the last parameter passed to the method