Angella Andrea - Italian Blog

Infinita passione per lo sviluppo software !
posts - 133, comments - 216, trackbacks - 9

My Links

News

MIT OpenCourseWare: I'm invested Wikipedia Affiliate Button


Sto leggendo:

Archives

Post Categories

Siti web realizzati

Siti web tecnici

[70-536] - Built-in Value types


Area di riferimento

- Developing applications that use system types and collections
    - Manage data in a .NET Framework application by using the .NET Framework 2.0 system types
        - Value types


Breve introduzione al .NET Framework


Il Microsoft .NET Framework 2.0 è costituito da due parti: il Common Language Runtime (CLR) e la Framework Class Library (FCL). Il CLR costituisce l'ambiente di esecuzione per le nostre applicazioni ed è l'equivalente della Java Virtual Machine del mondo Java. La FCL fornisce delle API orientate agli oggetti per svolgere diverse operazioni necessarie alle applicazioni. Il Microsoft .NET Framework offre un'ambiente gestito per l'esecuzione del codice e permette di sviluppare applicazioni con differenti linguaggi in grado di interoperare. Siccome i tipi di dati sono il modo attraverso cui il codice scritto in un linguaggio di programmazione può "parlare" con codice scritto in un altro linguaggio, Microsoft ha creato una specifica formale: il Common Type System (CTS) che descrive come i tipi sono definiti e come essi si comportano. Inoltre Microsoft ha definito un Common Language Specification (CLS) che fornisce i dettagli necessari affinchè possano essere sviluppati compilatori che generano codice compatibile con altri linguaggi. Il codice generato dai compilatori è chiamato Microsoft Intermediate Language (MSIL) ed è l'unico linguaggio che il CLR è in grado di eseguire. L'integrazione dei linguaggi, uno dei più grandi obiettivi che Microsoft si era imposta, è diventata realtà !

Tutto il codice che inserirò nei miei post sarà scritto utilizzando il linguaggio C#.NET tuttavia coloro che preferiscono VB.NET possono utilizzare diversi convertitori di codice da C# a VB. Un semplice convertitore basato sul web può essere raggiunto al seguente indirizzo: http://authors.aspalliance.com/aldotnet/examples/translate.aspx.

Value Types

I value types sono variabili che contengono i loro dati direttamente. Le istanze di value types sono memorizzati in un'area di memoria chiamata Stack, dove il runtime può creare, leggere, aggiornare e rimuovere i dati molto velocemente e con il minimo overhead. L'assegnamento tra due variabili value type comporta la copia dei dati da una variabile all'altra ma questi dati sono memorizzati in due differenti lacazioni di memoria sullo stack. Tutti i tipi del framework (compresi i value types) derivano dal tipo System.Object.

Esistono tre tipi di value types:

  • Built-in types
  • User-Defined types
  • Enumerations

Built-in Types

I built-in types sono tipi forniti con il .NET Framework e costituisco i mattoni con i quali altri tipi vengono realizzati.
I più comuni value types presenti nel namespace System sono mostrati nella seguente tabella, in cui riporto anche le corrispondenti parole chiave C#

Value types Keyword in C# Descrizione
System.Boolean bool Valore booleano (true o false)
System.Byte byte Valore intero (da 0 a 255)
System.SByte sbyte Valore intero (da -128 a 127)
System.Char char Singolo carattere unicode (occupa 2 bytes)
System.Int16 short Valore intero con segno a 16 bit
System.Int32 int Valore intero con segno a 32 bit
System.Int64 long Valore intero con segno a 64 bit
System.UInt16 ushort Valore intero senza segno a 16 bit
System.UInt32 uint Valore intero senza segno a 32 bit
System.UInt64 ulong Valore intero senza segno a 64 bit
System.Single float Numero in virgola mobile a precisione singola
System.Double double Numero in virgola mobile a precisione doppia
System.Decimal decimal Numero decimale
System.DateTime - Data e ora del giorno
System.TimeSpan - Intervallo di tempo


E' importante sottolineare che esporre funzionalità pubbliche mediante l'utilizzo dei tipi numerici senza segno non permette l'interoperabilità completa con gli altri linguaggi in quanto questi built-in types non sono definiti nel CLS.

Codice di Esempio

Un esempio di dichiarazione e d'uso dei built-in types:

int x = 3;
int y = 4;
bool b = true;
float f = (x + y) / 2.0F;
double d = Math.Pow(x, y);
decimal dec = 12345566776.451341541251255151M;

Console.WriteLine("x + y = {0}", x + y);
Console.WriteLine("b = {0}", b);
Console.WriteLine("Media tra x e y = {0}", f);
Console.WriteLine("x ^ y = {0}", d);
Console.WriteLine("d = {0}", dec);


Giorni dei mesi di uno specifico anno:

int anno = 2007;  // anno di interesse
int giorni;

for (int mese = 1; mese <= 12; mese++)
{
    giorni = DateTime.DaysInMonth(anno, mese);
    Console.WriteLine("Il mese {0} dell'anno {1} ha {2} giorni", mese, anno, giorni);
}


Differenza tra due DateTime:

DateTime dt1 = new DateTime(2007, 8, 25, 4, 14, 0);
DateTime dt2 = new DateTime(2007, 8, 25, 9, 0, 0);

Console.WriteLine("dt1 = {0}", dt1.ToString() );
Console.WriteLine("dt2 = {0}", dt2.ToString() );

if (dt2 > dt1)
{
    TimeSpan diff = dt2 - dt1;               
    Console.WriteLine("dt2 - dt1 = {0}", diff.ToString() );
}

Print | posted on sabato 25 agosto 2007 07:35 | Filed Under [ Exam 70-536 Application Development Foundation ]

Comments have been closed on this topic.

Powered by:
Powered By Subtext Powered By ASP.NET