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

    Gerarchia di strutture dati C#

    Ciao a tutti!
    Mi è stato commissionato un programmino per il quale mi servirebbe creare una gerarchia di strutture dati ( array di record all'interno di altri record ).
    Il compilatore di Visual Studio per linguaggio C# dà errore al mio codice:
    codice:
    public const int MaxPlayers = 30;
    public const int MaxTeams = 30;
    public const int NumSessions = 18;
    
    
    public struct TypeSession
    {
        public float mark;
        public bool rigor_kept;
        public bool goal_suffered;
        public bool admonished;
        public bool expelled;
        public float fanta_mark;
    }
    
    
    public struct TypePlayer
    {
        public string denomination;
        public Boolean GoalKeeper;
        public TypeSession [] session = new TypeSessions [ NumSessions ];
    }
    
    
    public struct TypeSquad
    {
        public string name;
        public int N_players;
        public TypePlayer [] list_players = new TypePlayer [ MaxPlayers ];
    }
    Compilatore:



    • Errore CS0573 'frm_main.TypePlayer': le strutture non possono contenere inizializzatori di campo o di proprietà delle istanze FantaCalcio



    • Errore CS0573 'frm_main.TypeSquad': le strutture non possono contenere inizializzatori di campo o di proprietà delle istanze FantaCalcio

    Qualcuno mi può aiutare?
    Ultima modifica di MItaly; 15-07-2016 a 08:56 Motivo: Tag CODE

  2. #2
    Utente di HTML.it L'avatar di oregon
    Registrato dal
    Jul 2005
    residenza
    Roma
    Messaggi
    36,480
    Non puoi usare la new nella struct.


    P.S. La sezione giusta è .NET Framework
    No MP tecnici (non rispondo nemmeno!), usa il forum.

  3. #3
    Utente di HTML.it
    Registrato dal
    Jul 2015
    Messaggi
    57
    come mai la scelta di utilizzare delle strutture al posto delle classi? scelta obbligata o del tutto casuale?

    solitamente le strutture sono di piccole dimensioni (parliamo di decine di byte), quando assegni la struttura ad un variabile viene generate una copia, non possiedono eredità (eccetto d'interfaccia) e solitamente si evitano I cast.

    l'errore che ti viene dato a compilazione è definito dal fatto che anche alle strutture viene fornito un valore di default per le variabili d'istanza, pertanto solo dopo l'allocazione della memoria potrai cambiarlo, ad esempio inizializzandolo o assegnandolo nel costruttore della struttura (deve avere parametri).

    Comunque nel caso specifico, possiedi una gerarchia di dati che vanno contro il senso d'utilizzo di una struttura.
    Il mio consiglio è di utilizzare le classi, rispettando le regole "non scritte" della programmazione ad oggetti (es: incapsulamento) ed anche quelle del linguaggio specifico C# (es: definizione variabili)

  4. #4
    Eh si, avevo pensato di utilizzare delle classi!
    C# è per me un linguaggio quasi nuovo e quindi speravo di cavarmela con delle semplici strutture senza il bisogno di utilizzare la programmazione orientata agli oggeti in quanto ho poco tempo e dovrei cercare sul manuale le sintassi ( non che ci voglia molto, comunque ).
    Comunque farò così, almeno intanto imparo. Sarà simile al C++ o a Java spero
    Grazie mille.
    Ultima modifica di alex.catto; 15-07-2016 a 12:10

Tag per questa discussione

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.