What's wrong with this generic class?
Q: What's wrong with the below generic class?
VB.NET
Imports System.Data
Imports System.Web
Public
Class GenericClass(Of T As DataTable)Public Function GetValue(ByVal val As T) As T
Return val
End Function
Public Function GetValue(ByVal val As T) As DataTable
Return val
End Function
HttpContext.Current.Response.Write(val)
End Sub
End Class
C#
using System.Data;
using System.Web;
public
class GenericClass<T> where T : DataTable{
public T GetValue(T val)
{
return val;
} public DataTable GetValue(T val)
{
return val;
} public void GetValue(T val)
{
HttpContext.Current.Response.Write(val);
}
}
A: At first glance, the overloaded methods appear to be unique. However, this is not the case. In VB.NET, the first 2 methods would error and in C# the last 2 methods would error. Why does this happen? Like non-generic methods, your generic methods must be unique by their method signatures, not just by their return types.




