comprensione globale del C # (1 C # e Java)


comprensione globale del C # (1 C # e Java)

Uno studio comparato di C # cinese

OF: Albahari Ben
Azienda: Genamics
Data: 31 luglio 2000 la prima edizione, 10 agosto, 2000 emendamenti.
Per ringraziare le seguenti persone che sostengono e feedback (in ordine alfabetico): Don Box, CR Manning, Joe Nalewabau, John Osborn, Thomas Rhode & Daryl Richter.
Traduttore: Gloria

Il C # e Java segue è l'elenco tratto comune, l'obiettivo è migliorare il C + +. Queste caratteristiche, anche se non questo obbiettivo, ma per capire le analogie tra loro è ancora molto importante.

L compilato indipendente dalla macchina, codice linguaggio autonomo, che esegue l'applicazione in ambiente controllato;

L uso di garbage collection, e abbandonato il puntatore (C #, il puntatore è limitato al codice contrassegnati come non sicuri per l'uso);

l forte riflettività;

L alcun file di intestazione, tutto il codice contenuto nella confezione o la combinazione, non c'è nessuna classe del ciclo delle dichiarazioni di dipendenza;

l Tutte le classi sono derivate da l'oggetto, e deve essere allocato nello heap con la nuova parola chiave; 【Yi Zhu: Java per oggetto; C # per l'oggetto, l'equivalente di. NET, System.Object】

l Quando la voce contrassegnata come bloccato / codice sincronizzato, tramite l'oggetto di blocco per il supporto multi-threading; 【Yi Zhu: per esempio, i metodi Java possono essere imposte alla parola chiave synchronized in classe C # può essere utilizzato in Monitor, classe Mutex, blocco dichiarazione ecc】

l supporto interfaccia - interfacce ereditarietà multipla, l'ereditarietà singola applicazione;

L all'interno della classe;

classe L di successione senza specificare il livello di accesso; 【Yi Zhu: in C + +, si può fare: class cls2: private cls1 (); ecc】

L non funzioni globali o costanti, tutto deve appartenere alla classe;

L la lunghezza della matrice e le stringhe sono tenuti contare, e una capacità d'ispezione frontaliero;

Sempre l 'uso "." operatore, non più gestore "- ","::";

null l e boolean / bool è una parola chiave; 【Yi Zhu: Java per boolean, C # per bool, pari a System.Boolean】

L tutti i valori devono essere inizializzate prima dell'uso;

L if non è possibile utilizzare numeri interi per determinare le condizioni;

l blocco try può ora finalmente dopo clausola. 【Yi Zhu: Standard C + + non può, ma Visual C + + sul SEH per fare l'espansione, è possibile utilizzare __try e __finally】