Visualizzazione dei risultati da 1 a 2 su 2

Discussione: Proprietà in c#

  1. #1
    Utente di HTML.it
    Registrato dal
    Jul 2001
    Messaggi
    13

    Proprietà in c#

    Ritengo che le proprietà siano una delle innovazioni più interessanti portate dal c#.
    Mi sono accorto però, di abusarne troppo. Mi spiego:

    potrei scrivere indifferentemente

    public ArrayList getArray()
    {
    ArrayList arrayList = new ArrayList();
    // riempio l'array
    return arrayList;
    }

    oppure

    public ArrayList ArrayList
    {
    get
    {
    ArrayList arrayList = new ArrayList();
    // riempio l'array
    return arrayList;
    }
    }

    Sapete dirmi quale dei due modi è più indicato? Ci sono diversità dal punto di vista delle prestazioni / possibilità? Oppure si tratta solo di un formalismo e ognuno sceglie il modo che preferisce?

    Grazie
    "Meglio consumarsi che bruciarsi e spegnersi lentamente.." - Kurt D. Cobain

  2. #2
    Utente di HTML.it L'avatar di biste
    Registrato dal
    Apr 2001
    Messaggi
    877
    Non c'è una regola generale, va molto in base alle esigenze... Certo che se hai una ad esempio una classe persona solitamente si fa una property Cognome e non un metodo GetCognome.

    Degli esempi che hai fatto tu è semanticamente più corretto il primo anche se in entrambi non salvi un riferimento interno alla classe rispetto all'oggetto creato.

    Di solito quando si fa una property si crea in questo modo:

    codice:
    internal ArrayList _ArrayList //Variabile di membro 
    
    public ArrayList ArrayList{
    get{
    if (_ArrayList == null) //Se non ho ancora creato l'oggetto
    // riempio l'array
    CreateArray();
    return _ArrayList;
    }
    } 
    
    private void CreateArray(){
      _ArrayList = new ArrayList();
      //Valorizzo l'array
    }
    In questo caso abbiamo una variabile di membro _ArrayList che utilizziamo per accedere all'oggetto dalla classe stessa e eventualmente dalle classi figlio (visto che ha uno scope internal) senza passare per la get della property.
    Poi controlliamo semplicemente che l'array non sia già stato creato: se è già creato restituiamo l'istanza corrente, altrimenti chiamiamo un metodo che ci crea l'istanza e ce lo valorizza.
    Come regola generale è importante notare che per creare l'array ci siamo affidati ad un metodo esterno perchè solitamente operazioni/controlli non vengono fatti nel corpo della property ma ci si affida appunto a metodi per maggiore leggibilità del codice.

    Spero sia + o - chiaro e di non averti confuso ulteriormente le idee, cmq credimi che poi lavorandoci capisci molto di più rispetto alla teoria letta sui manuali

    HTH
    UGIdotNET
    Microsoft .NET MCAD
    C++, C#, VB6, VB.NET, ASP, ASP.NET
    SQL Server 2000

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.