Visualizzazione dei risultati da 1 a 5 su 5
  1. #1

    [C#] Condividere oggetti tra classi

    Salve a tutti, avrei bisogno di un'illuminazione;

    Ho un totale di 3 classi: chiamiamole A, B e C.

    La Classe B crea un nuovo oggetto della classe A, settando il valore di alcune proprietà di esso.
    La Classe C dovrebbe poter leggere questi nuovi valori dell'oggetto di classe A (solo leggerli, senza modificarli).

    Come fare?

    Grazie a tutti!

  2. #2
    Fai in modo che le proprietà di A vengano settate dal costruttore e che siano leggibili tramite delle property pubbliche di sola lettura. B creerà gli oggetti A impostandone i valori tramite il costruttore e dal momento della costruzione tutti potranno solo leggerli.
    codice:
    class A
    {
        private int foo;
        private double bar;
        public A(int pFoo, double pBar)
        {
            foo = pFoo;
            bar = pBar;
        }
    
        public int Foo
        {
            get { return foo; }
        }
        
        public double Bar
        {
            get { return bar; }
        }
    }
    Amaro C++, il gusto pieno dell'undefined behavior.

  3. #3
    Ciao e grazie per la celere risposta!

    Non mi è chiarissimo il procedimento...

    Allora:

    Definisco il costrutto in A, il quale ha nella signature le 4 proprietà che poi dovrò andare a scrivere (e poi a leggere).

    La Classe B istanzia un nuovo oggetto di A passandogli inziailmente valori nulli...e man mano che procede nella sua elaborazione setta il valore di quelle proprietà.

    Il controllo passa ora alla Classe C: a livello di sintassi come fare per creare quest'oggetto di classe A valorizzato coi valori passatigli dalla classe B?

    E' proprio la sintassi che mi manca...


  4. #4
    Uhm...allora, provo a spiegarmi meglio.

    Ho la classe A che ha, supponiamo, 3 proprietà (prop1, prop2, prop3...supponiamole tutte stringhe).

    Nella classe B dichiaro un nuovo oggetto di classe A:

    ClasseA objA = new ClasseA();

    Durante l'elaborazione del processo, la classe B esegue 3 "set" su objA.prop1, objA.prop2 e objA.prop3 in modo da settare il valore di queste 3 proprietà.
    In tal modo la classe B "riempie" l'oggetto objA avendone settate tutte le proprietà.

    Successivamente il controllo passa alla Classe C che, sulla base del valore delle proprietà settato dalla classe B su objA, deve fare altre cose.
    Come faccio a fare riferimento, nella classe C, proprio a objA?

    Ovviamente facendo in ClasseC una "new" dell'oggetto A esso mi ricrea un nuovo oggetto con le proprietà vuote...


  5. #5
    Originariamente inviato da liveforever
    La Classe B istanzia un nuovo oggetto di A passandogli inziailmente valori nulli...e man mano che procede nella sua elaborazione setta il valore di quelle proprietà.
    No, il concetto è che il nuovo oggetto viene creato solo quando i valori da passargli sono definiti (passandoli tramite il costruttore), in maniera da poter poi usare proprietà di sola lettura per la lettura di questi dati.
    Amaro C++, il gusto pieno dell'undefined behavior.

Permessi di invio

  • Non puoi inserire discussioni
  • Non puoi inserire repliche
  • Non puoi inserire allegati
  • Non puoi modificare i tuoi messaggi
  •  
Powered by vBulletin® Version 4.2.1
Copyright © 2025 vBulletin Solutions, Inc. All rights reserved.