Welcome to Strong Coders Community Sign in | Join | Help

Blog ( Of Ryan Olshan)

News

  • About Ryan Olshan

    Join StrongTypes - Free Generics Help By Email
    Join StrongTypes

    Community Credit Winner

    View my MVP profile

    The posts on this weblog are provided "as is" with no warranties and confer no rights. The opinions expressed herin are my own personal opinions and do not represent my employer's view in any way.

    Subscribe to Rolog via My AOL
    Subscribe to Rolog via Bloglines


    Subscribe to Rolog via Feedburner

    Furl Rolog




    Subscribe to Rolog via Newsburst


    Subscribe to Rolog via Pluck

    Add Rolog to Technorati Favorites




    Thycotic Secret Server

.NET Websites

  • => StrongTypes.com <=
  • Community Credit
  • DotNetCharity.com
  • DotNetSlackers
  • EasyListBox
  • SystemNetMail.com
  • SystemWebMail.com

Blogroll

  • Alex Campbell
  • Carlos Magalhaes
  • Chris Taylor
  • Darren Neimke
  • David Betz
  • Eric Smith
  • Rob Caron
  • Rob Howard
  • Sam Gentile
  • Scott Guthrie
  • Scott Mitchell
  • Tess
  • Wesner Moise
  • Jason Alexander
  • Bill Ryan
  • Steve Smith
  • Sahil Malik
  • David Silverlight

Other Websites

  • 911 Pigeon Alert
  • Pacific Wildlife Project

Strong Coder Bloggers

  • Dean Fiala
  • Kevin Jones

Thycotic Bloggers

  • Bryant Smith
  • John Morales
  • Jonathan Cogley

Yahoo! Groups

  • => StrongTypes <=
  • AspNet2
  • AspNet20GridView
  • PayPalDevDotNet
  • RubyOnRails
  • VSTS

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

   Public Sub GetValue( ByVal val As T)
      HttpContext.Current.Response.Write(val)
   
End
Sub
End
Class

C#
using System.Data;
using System.Web;

public

class GenericClass 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.

Share this post: | bookmark it! | digg it! | reddit! | kick it! | live it!
Posted: Monday, January 02, 2006 3:44 PMby Ryan Olshan

Comments

No Comments

New Comments to this post are disabled