PROBLEMA CON I GENERICS

mercoledì 24 ottobre 2007 - 11.06

powermax74 Profilo | Newbie

Ragazzi avrei bisogno di delucidazioni in merito , non riesco a venirne fuori ho il seguente codice:

namespace TEST_NET_2_0
{
public class BaseNodeGeneric<T>
{

}

class WorkClass<U>
{
public static void prova(BaseNodeGeneric<U> _base)
{

}
}
}


Ho provato a scrivere su un'altra classe:

public static void esegui()
{
BaseNodeGeneric<int> _base = new BaseNodeGeneric<int>();// OK
WorkClass<BaseNodeGeneric<int>>.prova(_base);
}

ESATTAMENTE IL COMPILATORE MI DICE:
Argomento '1': impossibile convertire da 'TEST_NET_2_0.BaseNodeGeneric<int>' a 'TEST_NET_2_0.BaseNodeGeneric<TEST_NET_2_0.BaseNodeGeneric<int>>'


Se provo a commentare la riga ://WorkClass<BaseNodeGeneric<int>>.prova(_base);
il compilatore mi dice tutto OK , allora qual'è il modo giusto per richiamare il metodo " prova " ???

Grazie in anticipo !!

pozzoli.samuele Profilo | Senior Member

Io normalmente lavoro in VB... quindi è un po' diversa la questione dei generici, perchè hanno dovuto un po' inventarsi questa cosa, per basic, perchè non esisteva nulla del genere.

Secondo me, il problema tuo è che passi come dipo una classe tipizzata(punto1) mentre dovresti passare solo il tipo. Infatti, quando dichiari la classe... in qualche modo richiami già la base (punto2)

Se stassi facendo io debug, passerei solo <int> al punto 1... Però sottolineo, non conosco bene c#...

>Ragazzi avrei bisogno di delucidazioni in merito , non riesco
>a venirne fuori ho il seguente codice:
>
>namespace TEST_NET_2_0
>{
> public class BaseNodeGeneric<T>
> {
>
> }
>
> class WorkClass<U>
> {

(punto2)

> public static void prova(BaseNodeGeneric<U> _base)
> {
>
> }
> }
>}
>
>
>Ho provato a scrivere su un'altra classe:
>
> public static void esegui()
> {
>BaseNodeGeneric<int> _base = new BaseNodeGeneric<int>();//
>OK

(punto1)

> WorkClass<BaseNodeGeneric<int>>.prova(_base);
> }
>
>ESATTAMENTE IL COMPILATORE MI DICE:
>Argomento '1': impossibile convertire da 'TEST_NET_2_0.BaseNodeGeneric<int>'
>a 'TEST_NET_2_0.BaseNodeGeneric<TEST_NET_2_0.BaseNodeGeneric<int>>'
>
>
>Se provo a commentare la riga ://WorkClass<BaseNodeGeneric<int>>.prova(_base);
>il compilatore mi dice tutto OK , allora qual'è il modo giusto
>per richiamare il metodo " prova " ???
>
>Grazie in anticipo !!

Prego in posticipo... quindi lunedì sera...
Partecipa anche tu! Registrati!
Hai bisogno di aiuto ?
Perchè non ti registri subito?

Dopo esserti registrato potrai chiedere
aiuto sul nostro Forum oppure aiutare gli altri

Consulta le Stanze disponibili.

Registrati ora !
Copyright © dotNetHell.it 2002-2025
Running on Windows Server 2008 R2 Standard, SQL Server 2012 & ASP.NET 3.5