Perché di solito c'è un riferimento a Java quando le persone parlano di C #?

2

Non so molto di C # ma sto programmando in Java da alcuni mesi. Avevo sempre sentito cosa fossero C e C ++, ma ero un po 'curioso di sapere da dove venisse C #. Sono un po 'confuso riguardo al linguaggio C # poiché anche se è uno dei linguaggi' C '(C, C ++, C #), d'altra parte tutti i miei professori sembrano metterlo in relazione con Java, e non con gli altri.

Se qualcuno può chiarire che sarebbe grandioso:)

    
posta Kaitlyn Mcmordie 25.10.2011 - 03:03
fonte

2 risposte

6

Probabilmente perché Java e C # sono estremamente simili: sono entrambi linguaggi OOP basati su classi con ereditarietà e interfacce singole, strong tipizzazione statica, garbage collection incorporato nel linguaggio, semantica della copia che si lega ai tipi (tipi di valore e tipi di riferimento ), generici, gerarchie di namespace, reflection ed entrambi vengono eseguiti su un ambiente virtualizzato (runtime JRE / .NET). Inoltre condividono gran parte della loro sintassi.

Gli altri linguaggi della famiglia "C-like" sono diversi da Java e C # in molti aspetti: C non ha classi, è tipizzato debolmente, non ha garbage collection, semantics di copia sono espliciti usa, compila direttamente sul codice macchina e manca di generici (offrendo invece macro preprocessore C e cast impliciti). C ++ ha classi, ma usa ereditarietà multipla anziché interfacce; offre anche modelli, che sono superficialmente simili ai generici ma funzionano in modo diverso sotto il cofano; è simile a C nella maggior parte degli altri aspetti. Javascript, molto simile a C nella sua sintassi, condivide la garbage collection e un ambiente virtualizzato con Java e C #, ma utilizza la tipizzazione dinamica, l'OOP basato su prototipo e non utilizza l'approccio di compilazione a metà strada di Java e C #.

    
risposta data 25.10.2011 - 09:19
fonte
12

C # è un linguaggio di codice gestito (compilato in bytecode ed eseguito su una macchina virtuale) sviluppato da Microsoft per fungere da uno dei linguaggi di base del framework .NET. Presenta la garbage collection e una facile integrazione con altre lingue.

Viene allineato con Java perché ha la maggior parte delle stesse funzionalità, una sintassi simile a C, un modello di esecuzione di codice gestito e un garbage collector automatico. È anche un "Object Oriented Language" facile.

È stato il risultato di uno sforzo di Microsoft di sviluppare una VM per Java fino a quando Sun non li ha citati. Quindi il progetto è stato accantonato e il progetto .NET ha assunto il ruolo di Microsoft nel tentativo di realizzare un ambiente di codice gestito principalmente per le applicazioni desktop.

Puoi scrivere un sacco di cose in C # e gestirle in un buon numero di posti ora con il framework Mono ma manca ancora la potenza di taglio di C o C ++ oltre ad essere sostanzialmente più difficile massacrare i tuoi piedi clonati con ambiguità .

Qualunque cosa utilizzi il framework XNA è stata probabilmente scritta almeno in parte in C #.

    
risposta data 25.10.2011 - 03:15
fonte

Leggi altre domande sui tag