C# Programming - Constructors - Discussion

Discussion Forum : Constructors - General Questions (Q.No. 2)
2.
Which of the following statements is correct about the C#.NET code snippet given below?
namespace IndiabixConsoleApplication
{ 
    class Sample
    { 
        public int func()
        {
            return 1;
        } 
        public Single func()
        { 
            return 2.4f ;
        } 
    } 
    class Program
    { 
        static void Main(string[ ] args)
        {
            Sample s1 = new Sample(); 
            int i;
            i = s1.func(); 
            Single j; 
            j = s1.func(); 
        } 
    } 
}
func() is a valid overloaded function.
Overloading works only in case of subroutines and not in case of functions.
func() cannot be considered overloaded because: return value cannot be used to distinguish between two overloaded functions.
The call to i = s1.func() will assign 1 to i.
The call j = s1.func() will assign 2.4 to j.
Answer: Option
Explanation:
No answer description is available. Let's discuss.
Discussion:
15 comments Page 1 of 2.

Sorna ranjani said:   1 decade ago
Functions are declared and they are not defined. So func is not overloaded.

Gowtham said:   1 decade ago
I think functions can be overloaded with the type and number of arguments.

Rajeev said:   1 decade ago
Because in method overloading parameters.

Should be different, not return type.

Nishant Rai said:   1 decade ago
Because in method overloading function name must be same as the class or struct name..and there should be either
1) different parameter
2) return type of parameter
3) sequence of parameter

Ammu said:   1 decade ago
@rajiv well said

Mohammed Ansari said:   1 decade ago
@Nishant Rai.
You are wrong as Only the name of the methods which are going to be overload need to be have same name, it is not necessary that the Method name should Match with the class or Struct Name.

Rajeev Answers is Highly Acceptable.

Sadiq said:   1 decade ago
A function is said to be overloaded when the function is created with same name but with different signature.
Return type is not considered to be in method/funtion signature and hence declaring a function with same name and same signature leads to ambiguous situation for the complier to which function needs to executed when the function is called, hence it throws a compliation error.

Karthi said:   1 decade ago
Somebody please give the correct definition for signature. Because all this while I have been thinking that it is both return type and arguments.

Mathew said:   1 decade ago
Sadiq is quite right. As for definition of Signature, a method/function Signature is what appears in parenthesis right after the method/function name which represents the parameter(s) names(s) and their type(s).

And as Sadiq mentioned, Return Type of a method/function is not part of the Signature and has nothing to do with method/function overloading.

Qyam uddin said:   1 decade ago
Signature should include following:

No of parameter.
Type of parameter.
Order of parameter.


Post your comments here:

Your comments will be displayed after verification.