Sì, Foo.class
in Java è equivalente a typeof(Foo)
in C#. Vedere section 15.8.2 of the JLS per ulteriori informazioni sui valori letterali .
È non la stessa chiamata GetType()
su un riferimento, che ottiene il esecuzione tempo type di un oggetto. L'equivalente Java di questo è someReference.getClass()
.
Una ragione per cui si può vedere più spesso nel codice Java che in C# è in relazione ai generici. Non è del tutto inusuale per avere qualcosa di simile:
public class Generic<T>
{
private final Class<T> clazz;
public Generic(Class<T> clazz)
{
this.clazz = clazz;
}
}
Questo consente l'accesso di esecuzione in tempo per la classe di riflessione ecc Questo è necessaria solo in Java a causa di cancellazione del tipo, per cui un oggetto di un tipo generico può di solito determinano i suoi argomenti tipo al momento dell'esecuzione.
fonte
2011-10-17 06:06:51
Alcune informazioni correlate: 'System.Type' è un tipo generale in .Net e non specifico per C#. Non so se lo stesso sia o non sia vero per il tipo 'Class' nella JVM (al contrario del linguaggio Java stesso). –
È piuttosto difficile trovare questa informazione proveniente da Java. Ho cercato "C# class object", "C# reference to class" e molti altri termini non sapendo questo è chiamato 'Type' in C# - le uniche cose che otterrai sono tutorial e introduzioni a OOP. Ma grazie per questa domanda :-) – Mitja