public class GenericClass { public delegate void Callback( T element ); private Callback cb; public GenericClass( Callback cb ) { this.cb = cb; } } public void myIntCallback( int element ) { message( @"$element" ); } void main() { var gc = new GenericClass( myIntCallback ); }