2012-03-06 12 views
6

in PHP possiamo creare classi standard e objes come questoesiste un modo per creare classi standard e oggetti in C# come php

< ?php 

$ auto = new stdClass;
$ auto-> Colore = 'nero';
$ car-> type = 'sports';

print_r ($ auto);
?>

c'è un modo simile in C# .NET ??? Sono molto nuovo a C# chiunque può aiutare ???

+2

Cosa vuoi ottenere? Voglio dire, scrivi la pseudo-C# che vorresti scrivere. –

+0

È possibile utilizzare [Tipi anonimi] (http://msdn.microsoft.com/en-us/library/bb397696.aspx) –

+0

Quale versione del framework .net si sta utilizzando nel progetto? Ci sono alcune cose belle in .net 4.0 che potrebbero aiutarti, ma è anche possibile farlo in 3.5. –

risposta

10

Si potrebbe utilizzare Anonymous Types in C#, ad esempio: preso dal link:

var v = new { Amount = 108, Message = "Hello" }; 
    Console.WriteLine(v.Amount + v.Message); 

nota la sezione Osservazioni per i loro limiti (per esempio si può lanciare solo di opporsi) ecc

3

È possibile utilizzare i tipi anonimi, ma non sono proprio la stessa cosa: http://msdn.microsoft.com/en-us/library/bb397696.aspx

C# è davvero tutto forte tipizzazione, così debole sostegno-tipo è, beh, piuttosto debole. A seconda di cosa stai facendo in questo caso, un tipo anonimo potrebbe funzionare, ma in generale dovresti creare classi reali durante la codifica in C#. Per il tuo esempio Car, di solito creo una classe. È più codice, ma è così che si chiama C#. PHP potresti creare un'app con, diciamo, 10 file PHP, ma probabilmente la stessa app C# finirà per essere 20-30.

8

C# è tipizzato in modo statico, pertanto è necessario dichiarare classi regolari prima che possano essere utilizzate. Tuttavia, i tipi anonimi consentono di dichiarare le classi in base all'inizializzazione. Una volta dichiarato, non è possibile modificare né il tipo né l'istanza.

Per un approccio più dinamico, dare un'occhiata a ExpandoObject che consente di aggiungere dinamicamente le proprietà. Ciò richiede C# 4 e il riferimento deve essere dichiarato come dinamico.

dynamic car = new ExpandoObject(); 
car.Color = "Black"; 
car.Type "Sports"; 
Problemi correlati