1) Is the following code compile?
using System;
namespace MethodOverloadingDemo
{
class AddProgram
{
public static void Main()
{
}
public void Sum(int FN, int SN)
{
int Result = FN+ SN;
}
public int Sum(int FN, int SN)
{
int Result = FN+ SN;
}
}
}
Ans) No, The above code does not compile. You cannot overload a method based on the return type. To overload a method in C# either the number or type of parameters should be different. In general the return type of a method is not part of the signature of the method for the purposes of method overloading.
2) What is the difference between method parameters and method arguments. Give an example?
namespace MethodOverloadingDemo
{
class AddProgram
{
public static void Main()
{
int FN = 10;
int SN = 20;
//FN and LN are method arguments
int Total = Sum(FN, SN);
Console.WriteLine(Total);
}
//FirstNumber and SecondNumber are method parameters
public static int Sum(int FirstNumber, int SecondNumber)
{
int Result = FirstNumber + SecondNumber;
return Result;
}
}
}
In the example above FirstNumber and SecondNumber are method parameters where as FN and LN are method arguments. The method definition specifies the names and types of any parameters that are required. When calling code calls the method, it provides concrete values called arguments for each parameter. The arguments must be compatible with the parameter type but the argument name (if any) used in the calling code does not have to be the same as the parameter named defined in the method.
3) Explain the difference between passing parameters by value and passing parameters by reference with an example?
using System;
namespace MethodOverloadingDemo
{
class AddProgram
{
public static void Main()
{
}
public void Sum(int FN, int SN)
{
int Result = FN+ SN;
}
public int Sum(int FN, int SN)
{
int Result = FN+ SN;
}
}
}
Ans) No, The above code does not compile. You cannot overload a method based on the return type. To overload a method in C# either the number or type of parameters should be different. In general the return type of a method is not part of the signature of the method for the purposes of method overloading.
2) What is the difference between method parameters and method arguments. Give an example?
namespace MethodOverloadingDemo
{
class AddProgram
{
public static void Main()
{
int FN = 10;
int SN = 20;
//FN and LN are method arguments
int Total = Sum(FN, SN);
Console.WriteLine(Total);
}
//FirstNumber and SecondNumber are method parameters
public static int Sum(int FirstNumber, int SecondNumber)
{
int Result = FirstNumber + SecondNumber;
return Result;
}
}
}
In the example above FirstNumber and SecondNumber are method parameters where as FN and LN are method arguments. The method definition specifies the names and types of any parameters that are required. When calling code calls the method, it provides concrete values called arguments for each parameter. The arguments must be compatible with the parameter type but the argument name (if any) used in the calling code does not have to be the same as the parameter named defined in the method.
3) Explain the difference between passing parameters by value and passing parameters by reference with an example?
We can pass parameters to a method by value or by reference. By default all value types are passed by value where as all reference types are passed by reference. By default, when a value type is passed to a method, a copy is passed instead of the object itself. Therefore, changes to the argument have no effect on the original copy in the calling method.An example is shown below.
6) What is the syntax of Method?
Ans)
access-modifiers return-type method-name (parameters)
{
Method Body
}
7) What are static methods?
Ans) When a method declaration includes a static modifier, that method is said to be a static method. Static method is invoked using the class name.
Output : 0
Output : 101
4) Can you pass value types by reference to a method?
Ans) Yes, we can pass value types by by reference to a method. An example is shown below.
using System;
namespace MethodDemo
{
class Program
{
public static void Main()
{
int I = 10;
Console.WriteLine("Value of I before passing to the method = " + I);
Function(ref I);
Console.WriteLine("Value of I after passing to the method by reference= " + I);
}
public static void Function(ref int Number)
{
Number = Number + 5;
}
}
Ans) Yes, Even though a method's return type is void, you can use the return keyword to stop the execution of the method as shown in the example below.
using System;
namespace MethodDemo
{
class Program
{
public static void Main()
{
HelloMethod();
}
public static void HelloMethod()
{
Console.WriteLine("Hello method called");
return;
Console.WriteLine("This statement will never be executed");
}
}
}
Ans) Yes, we can pass value types by by reference to a method. An example is shown below.
using System;
namespace MethodDemo
{
class Program
{
public static void Main()
{
int I = 10;
Console.WriteLine("Value of I before passing to the method = " + I);
Function(ref I);
Console.WriteLine("Value of I after passing to the method by reference= " + I);
}
public static void Function(ref int Number)
{
Number = Number + 5;
}
}
}
5) If a method's return type is void, can you use a return keyword in the method?Ans) Yes, Even though a method's return type is void, you can use the return keyword to stop the execution of the method as shown in the example below.
using System;
namespace MethodDemo
{
class Program
{
public static void Main()
{
HelloMethod();
}
public static void HelloMethod()
{
Console.WriteLine("Hello method called");
return;
Console.WriteLine("This statement will never be executed");
}
}
}
Ans)
access-modifiers return-type method-name (parameters)
{
Method Body
}
7) What are static methods?
Ans) When a method declaration includes a static modifier, that method is said to be a static method. Static method is invoked using the class name.
No comments:
Post a Comment