Blog Stats
  • Posts - 16
  • Articles - 0
  • Comments - 123
  • Trackbacks - 31

 

[70-553] – 1. Section 1 – 1. Dev application – 1 – Manage data (1)

Manage data in a .NET Framework application using .NET Framework 2.0 system types (System namespace)

Value Types:  sono strutture o enumerati e vengono sempre passati per valore. Poichè si parla di “struct” e  non di “puntatori” non possono assumere il valore null. Per l’inizializzazione c’e’ un costruttore di default che permette di assegnare i  default.  E poi ognuno si puo’ creare i propri costruttori in cui assegnare i valori a tutte le variabili membro. Tutti sono derivati implicitamente dalla classe Object.

I tipi di base: integer, double,bool, .. sono value types.

Il riferimento alla teoria è: http://msdn2.microsoft.com/en-us/library/s1ax56ch(VS.71).aspx   ,  facciamo un esempio

public struct PuntoStruct

{

    private double _x, _y,_z;

    //ATTENZIONE

    //public Punto(  ) : non serve !! perchè questo dice la guida!

    //Each struct already has a default constructor that initializes the object to zero.

    //Therefore, the constructors that you can create for a struct must take one or more parameters. 

     public PuntoStruct(double x1, double y1, double z1)

    {

        _x = x1;

        _y = y1;

        _z = z1;                

       //non posso chiamare updateCoords perchè

       //PuntoStruct._x (e _y e _z) must be fully assigned before control leaves the constructor

       //quindi.. non posso delegare ad un'altra funzione.

    }

    public void printPunto(string name)

    {

        Console.WriteLine("{0} x = {1}, y ={2}, z = {3}", name, _x, _y, _z);

    }

    public void updateCoords(double x1, double y1, double z1)

    {

        _x = x1;

        _y = y1;

        _z = z1;            

     }

};

 

 

Lo uso: creo un punto a zero, un punto 1 ed un punto 2 come copia del punto1.  Nelle strutture non c’e’ bisogno di definere l’operatore di copia, ci pensa lui copiando la memoria.  Ora proviamo ad usarla in una console application.

static void Main(string[] args)

{

    PuntoStruct p0 = new PuntoStruct();

    PuntoStruct p1 = new PuntoStruct(10, 20, 30);

    PuntoStruct p2 = p1;

    p0.printPunto("Struct P0: ");

    p1.printPunto("Struct P1: ");

    p2.printPunto("Struct P2: ");

    p1.updateCoords(11, 22, 33);

    p1.printPunto("Struct P1 dopo: ");

    p2.printPunto("Struct P2 dopo: ");

}

 

Il risultato:

       STRUCT PO: x = 0, y = 0; y = 0

       STRUCT P1: x = 10, y = 20; y = 30

       STRUCT P2: x = 10, y = 20; y = 30

       STRUCT P1 dopo: x = 11, y = 22; y = 33

       STRUCT P2 dopo: x = 10, y = 20; y = 30

 

Dopo la modifica di p1, p2 è rimasto invariato, perchè ha un suo spazio di memoria, riempito solo la prima volta dalla copia dei valori di p1, ma poi è rimasto indipendente.

La soluzione con la classe, ed i riferimenti funzioneranno diversamente :-) .

 

 


Feedback

# Swine flu.

Gravatar Swine flu. 1976 swine flu scare. Swine flu shot. Swine flu vaccine. 05/05/2009 14:04 | Swine flu shot.

# kamagra oral jelly 100mg online nam

Gravatar ajanta kamagra 100 chewable tablet
[url=http://lkkkoqaql.com/]kamagra direct[/url]
kamagra 100mg tablets for sale in used cars
kamagra oral jelly gГјnstig kaufen paypal
kamagra 100mg tabletta 25/04/2018 00:58 | Philipboago

# kamagra kopen nam

Gravatar kamagra 100mg tablets indian
[url=http://lkkkspwql.com/]kamagra kopen amsterdam[/url]
come si usa kamagra oral jelly
kamagra 100mg gold review
kamagra 100mg chewable tablets india 25/04/2018 02:45 | KennyLedge

# kamagra jelly side effects nam

Gravatar kamagra oral jelly for sale in usa illinois
[url=http://lkbkspwql.com/]buy kamagra 100 mg[/url]
erfahrungsbericht kamagra oral jelly wirkung
kamagra oral jelly made in india
kamagra 100mg oral jelly kako se uzima 25/04/2018 11:37 | Jamespaure

# kamagra oral jelly for sale in usare sen

Gravatar kamagra oral jelly side effects
[url=http://kamagraonl.com/]kamagra 100 mg[/url]
kamagra 100mg oral jelly suppliers india
buy kamagra 100mg
kamagra oral jelly how to use video
http://kamagraonl.com/
kamagra 100mg oral jelly wirkung
10/05/2018 00:03 | Michaelbeple

Comments have been closed on this topic.
 

 

Copyright © Bruna Gavioli