Click here to Skip to main content
15,904,288 members
Home / Discussions / C#
   

C#

 
GeneralRe: Downloading file from remote location Pin
Scott Dorman2-Jul-07 10:43
professionalScott Dorman2-Jul-07 10:43 
GeneralRe: Downloading file from remote location Pin
Not Active2-Jul-07 10:59
mentorNot Active2-Jul-07 10:59 
QuestionC# Generic: Is this a bug or by design Pin
mschuckmann2-Jul-07 7:37
mschuckmann2-Jul-07 7:37 
AnswerRe: C# Generic: Is this a bug or by design Pin
Luc Pattyn2-Jul-07 8:03
sitebuilderLuc Pattyn2-Jul-07 8:03 
GeneralRe: C# Generic: Is this a bug or by design Pin
mschuckmann2-Jul-07 8:26
mschuckmann2-Jul-07 8:26 
GeneralRe: C# Generic: Is this a bug or by design Pin
Luc Pattyn2-Jul-07 9:08
sitebuilderLuc Pattyn2-Jul-07 9:08 
GeneralRe: C# Generic: Is this a bug or by design Pin
mschuckmann2-Jul-07 11:28
mschuckmann2-Jul-07 11:28 
GeneralRe: C# Generic: Is this a bug or by design Pin
Tim Paaschen2-Jul-07 20:36
Tim Paaschen2-Jul-07 20:36 
mschuckmann wrote:
If you leave out the where constraint you've essentially specified a generic with a constraint of object and you can't call any methods except those declared by object. Therefore my example code will not compile without the where constraint. So sure you can impliment generics without type constraints but don't expect to do anything interesting in your generic code.


I do agree to your point of view, that the limitation of generics in regard to derived classes are unexpected. As a workaround you can use an interface, that defines the required methods, as the constraint. However, you must explicitly specify the interface for each class:
interface Named
{
	void Name();
};

class Base : Named
{
	public void Name()
	{
		Console.WriteLine("I'm a Base class");
	}
};

class Middle : Base, Named
{
	public new void Name()
	{
		Console.Write("I'm a Middle class");
	}
};

class Child : Middle, Named
{
	public new void Name()
	{
		Console.Write("I'm a Child class");
	}
};

class Program
{
	static void PrintName<T>( T instance ) where T : Named
	{
		instance.Name();
	}

	static void Main( string[] args )
	{
		Child c = new Child();
		PrintName( c );
		Console.ReadLine();
	}
}


Regards,
Tim

QuestionMultiview Databinding Pin
stormcandi2-Jul-07 6:19
stormcandi2-Jul-07 6:19 
AnswerRe: Multiview Databinding Pin
Sathesh Sakthivel2-Jul-07 16:22
Sathesh Sakthivel2-Jul-07 16:22 
QuestionInsert from DataTable into an SQL Table Pin
kissa492-Jul-07 5:52
kissa492-Jul-07 5:52 
JokeRe: Insert from DataTable into an SQL Table Pin
Ed.Poore2-Jul-07 6:13
Ed.Poore2-Jul-07 6:13 
GeneralRe: Insert from DataTable into an SQL Table Pin
kissa492-Jul-07 6:36
kissa492-Jul-07 6:36 
GeneralRe: Insert from DataTable into an SQL Table Pin
Ed.Poore2-Jul-07 6:54
Ed.Poore2-Jul-07 6:54 
GeneralRe: Insert from DataTable into an SQL Table Pin
leppie2-Jul-07 7:21
leppie2-Jul-07 7:21 
QuestionRe: Insert from DataTable into an SQL Table Pin
kissa492-Jul-07 8:34
kissa492-Jul-07 8:34 
AnswerRe: Insert from DataTable into an SQL Table Pin
PIEBALDconsult2-Jul-07 11:05
mvePIEBALDconsult2-Jul-07 11:05 
GeneralRe: Insert from DataTable into an SQL Table Pin
kissa492-Jul-07 11:06
kissa492-Jul-07 11:06 
GeneralRe: Insert from DataTable into an SQL Table Pin
PIEBALDconsult3-Jul-07 7:07
mvePIEBALDconsult3-Jul-07 7:07 
GeneralRe: Insert from DataTable into an SQL Table Pin
kissa493-Jul-07 8:18
kissa493-Jul-07 8:18 
GeneralRe: Insert from DataTable into an SQL Table [modified] Pin
PIEBALDconsult3-Jul-07 11:56
mvePIEBALDconsult3-Jul-07 11:56 
GeneralRe: Insert from DataTable into an SQL Table Pin
kissa494-Jul-07 8:32
kissa494-Jul-07 8:32 
QuestionReading a block of data from a file Pin
I.explore.code2-Jul-07 5:50
I.explore.code2-Jul-07 5:50 
AnswerRe: Reading a block of data from a file Pin
Luc Pattyn2-Jul-07 6:11
sitebuilderLuc Pattyn2-Jul-07 6:11 
QuestionHow to pass user defined oracle type as argument to a stored procedure using c# Pin
Jayakanthan Devarajan2-Jul-07 5:27
Jayakanthan Devarajan2-Jul-07 5:27 

General General    News News    Suggestion Suggestion    Question Question    Bug Bug    Answer Answer    Joke Joke    Praise Praise    Rant Rant    Admin Admin   

Use Ctrl+Left/Right to switch messages, Ctrl+Up/Down to switch threads, Ctrl+Shift+Left/Right to switch pages.