G
Guest
I'm confused about the program below. Based on my reading of the C# spec, I
don't think it should compile, but it does when using Beta 1. Could somebody
please explain the function selection rules to me?
Thanks,
--
David Douglass
MCSD for Microsoft .NET
===================================================
#region Using directives
using System;
using System.Collections.Generic;
using System.Text;
#endregion
namespace CSharpSamples {
class FunctionOverloads {
static void Main(string[] args) {
FunctionOverloads1<ClassA> x = new FunctionOverloads1<ClassA>();
ClassA A = new ClassA();
x.Function1(A);
Console.ReadLine();
}
public class ClassA {
}
public class FunctionOverloads1<typeParam> {
public void Function1(typeParam arg) {
Console.WriteLine("Function1(typeParam arg)");
Console.WriteLine("arg.GetType() = '" + arg.GetType().ToString() + "'");
}
public void Function1(ClassA arg) {
Console.WriteLine("Function1(ClassA arg)");
Console.WriteLine("arg.GetType() = '" + arg.GetType().ToString() + "'");
}
}
}
}
don't think it should compile, but it does when using Beta 1. Could somebody
please explain the function selection rules to me?
Thanks,
--
David Douglass
MCSD for Microsoft .NET
===================================================
#region Using directives
using System;
using System.Collections.Generic;
using System.Text;
#endregion
namespace CSharpSamples {
class FunctionOverloads {
static void Main(string[] args) {
FunctionOverloads1<ClassA> x = new FunctionOverloads1<ClassA>();
ClassA A = new ClassA();
x.Function1(A);
Console.ReadLine();
}
public class ClassA {
}
public class FunctionOverloads1<typeParam> {
public void Function1(typeParam arg) {
Console.WriteLine("Function1(typeParam arg)");
Console.WriteLine("arg.GetType() = '" + arg.GetType().ToString() + "'");
}
public void Function1(ClassA arg) {
Console.WriteLine("Function1(ClassA arg)");
Console.WriteLine("arg.GetType() = '" + arg.GetType().ToString() + "'");
}
}
}
}