Visualizzazione dei risultati da 1 a 6 su 6
  1. #1
    Utente di HTML.it L'avatar di evil80
    Registrato dal
    May 2001
    Messaggi
    321

    C# : dubbio su metodi e "proprieta"

    Ciao,
    volevo sapere cosa cambia esattamente tra una proprietà a sola lettura e un metodo che mi restituisce lo stesso tipo della proprietà ?

    Nel senso

    CASO a:

    codice:
    public string NomeSocieta
    {
      get
         {
           return mVariabile;
         }  
    }
    CASO b:

    codice:
    public string NomeSocieta()
    {
      return mVariabile;
    }
    Perchè dovrei usare a invece di b o viceversa ?
    Forse sono solo due modi diversi di fare la stessa cosa ?
    Migliori prestazioni in qualche caso ?

    Thanks.
    Secondo alcuni autorevoli testi di tecnica di aeronautica, il calabrone non può volare, a causa della forma e del peso del proprio corpo in rapporto alla superficie alare.
    Ma il calabrone non lo sa e perciò continua a volare.
    Igor Sikorsky

  2. #2
    Per comodita' sintattica?

    Credo di si, infatti nel primo caso scrivi

    Console.write(pippo.NomeSocieta.length);

    nel secondo

    Console.write(pippo.NomeSocieta().length);

    in un esempio + complicato

    a = Oggetto.sottooggetto.sottosottooggetto.value;
    b = Oggetto.sottooggetto().sottosottooggetto().value() ;

    Ma soprattutto rende piu leggibile il codice nel caso di proprieta di lettura e scrittura, dove al posto dei classici

    societa.setNomeSocieta("PDP");
    Console.write(societa.getNomeSocieta());

    scrivi

    societa.nomeSocieta = "PDP";
    Console.write(societa.nomeSocieta);

    che rende meglio l'idea del fatto che nomeSocieta è un attributo della classe, a cui corrisponde qualcosa che ne riguarda lo stato interno, e non azione che la classe compie, e nello stesso tempo fornisce un meccanismo per nascondere l'implementazione interna.

    Poi se uno scrive un codice tipo

    bytescritti = societa.stampa;

    che stampa il nome della societa, allora e' meglio che usi un metodo, non e' che di per se questo renda leggibile il codice, lo rende + leggibile se usato bene.

    Come gli operatori, ...., sono d'accordo, e' solo una comodita' sintattica, pero' rende piu leggibile il codice scrivere a = b + c; rispetto ad a.Assign(b.Sum(c));

    Questione di vedute, probabilmente non usero mai il "costrutto a" nei miei programmi.

  3. #3
    Utente di HTML.it L'avatar di evil80
    Registrato dal
    May 2001
    Messaggi
    321
    ok,sostanzialmente sono la stessa cosa...
    dipende sa da come ti abitui ad usarle.

    Grazie
    Secondo alcuni autorevoli testi di tecnica di aeronautica, il calabrone non può volare, a causa della forma e del peso del proprio corpo in rapporto alla superficie alare.
    Ma il calabrone non lo sa e perciò continua a volare.
    Igor Sikorsky

  4. #4
    Utente bannato
    Registrato dal
    Nov 2002
    Messaggi
    111
    Originariamente inviato da evil80
    ok,sostanzialmente sono la stessa cosa...
    dipende sa da come ti abitui ad usarle.

    Grazie
    in realtà nella programmazione ad oggetti c'è una bella differenza tra proprietà (caratteristica di un oggetto) e metodo (azione di un oggetto). Potresti usarli entrambi allo stesso modo ma bisognerebbe seguire le direttive di programmazione ad oggetti.

    ciao.

  5. #5
    Utente di HTML.it L'avatar di evil80
    Registrato dal
    May 2001
    Messaggi
    321
    infatti in questo caso sarebbe più corretto utilizzare il caso "a".

    Comunque ho capito ora,grazie.
    Secondo alcuni autorevoli testi di tecnica di aeronautica, il calabrone non può volare, a causa della forma e del peso del proprio corpo in rapporto alla superficie alare.
    Ma il calabrone non lo sa e perciò continua a volare.
    Igor Sikorsky

  6. #6
    scusa, errore di stampa, non usero mai il costrutto a per far fare ad una proprieta il lavoro di un metodo.

    come nell'esempio

    bytescritti = societa.stampa

    anche se tecnicamente e' possibile.

    Tieni presete che comunque Java, che e' un ottimo linguaggio, non supporta le proprieta', devi usare i metodi e basta, ma comunque non e' che sia cattivo OOP, e' solo un altro modo di intenderlo.

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.