1) Class can not be declared as Private.
Elements defined in a namespace cannot be explicitly declared as private, protected, or protected internal
namespace OOPS
{
private class A
{
}
}
By default it is Public
2) Method must have a return type
class A
{
public M()
{
}
}
3) Type 'OOPS.A' already defines a member called 'M' with the same parameter types
class A
{
public void M()
{
}
public void M()
{
}
}
4) True Method Overload
class A
{
public void M(int i)
{
}
public void M()
{
}
}
5) Type 'OOPS.A' already defines a member called 'M' with the same parameter types
class A
{
public void M()
{
}
public string M()
{
return "HI";
}
}
6) Method Overload
class A
{
public void M()
{
}
public string M(int i)
{
return "HI";
}
}
7) Method Overload
public void M(int i)
{
}
private string M()
{
return "HI";
}
8) Method Overload
class A
{
public void M(Int16 i)
{
}
public void M(Int32 i)
{
}
public void M(Int64 i)
{
}
}
9) Type 'OOPS.A' already defines a member called 'M' with the same parameter types
public void M(int i)
{
}
public void M(Int32 i)
{
}
10)Method Overload
class A
{
public void M(int i)
{
}
public void M(double i)
{
}
}
Conclusion: Access modifier and return type of function does not matter in Method Overloading. What matter is
1) Number of function parameters.
2) Datatype of parameters
If same parameters then overloading is not possible.
No comments:
Post a Comment