Visualizzazione dei risultati da 1 a 4 su 4
  1. #1
    Utente di HTML.it
    Registrato dal
    Oct 2005
    Messaggi
    98

    [C#] Classi annidate e scope variabili

    Ciao a tutti,
    sto creando il mio primo progetto un po' complicato con un linguaggio OOP (c#).
    Ho un problema con lo scope delle variabili. Io ho una classe chiamiamola container che contiene altre 2 classi (class1 e classe2). Nella classe container ho 2 variabili pubbliche Altezza e Larghezza.
    Queste 2 variabili vorrei usarle poi in alcuni metodi delle 2 classi classe1 e classe2 ma non le vedo. Come mai?
    Magari non ha nemmeno senso avere delle classi dentro altre classi.
    posto il codice di come è fatta la classe

    codice:
    Class Container
    {
        public readonly int Larghezza, Altezza;
        Container(int altezza, int larghezza)
        {
            Larghezza = larghezza;
            Altezza = altezza;
        }
    
        class Classe1
        {
            public int X, Y;
            public Classe1(int Initx, int Inity)
            {
                X = Initx;
                Y = Inity;
                if (X < 0) X = 0;
                if (Y < 0) Y = 0;
                if (X > Larghezza - 1) X = Larghezza - 1;
                if (Y > Altezza - 1) Y = Altezza - 1;
            }
        }
    
        class Classe2
        {
            public int X, Y;
            public Classe2(int Initx, int Inity)
            {
                X = Initx;
                Y = Inity;
                if (X < 0) X = 0;
                if (Y < 0) Y = 0;
                if (X > Larghezza - 1) X = Larghezza - 1;
                if (Y > Altezza - 1) Y = Altezza - 1;
            }
        }
    }
    L'errore è nei costruttori di Classe1 e Classe2 che appunto mi dice che non vede le var Altezza e Larghezza. Qualcuno mi saprebbe dire una soluzione?

    Grazie a tutti
    .Fakkio.

  2. #2
    Utente di HTML.it L'avatar di Stoicenko
    Registrato dal
    Feb 2004
    Messaggi
    2,254
    Ovviamente non puoi vedere delle variabili senza un oggetto a cui si riferiscono.. il fatto che classe1 e classe2 siano contenute da contenitore non giustifica il fatto che classe1 e classe2 non hanno un oggetto a cui richedere la variabile.

    E' infatti abbastanza inutile dichiarare una classe dentro un'altra perchè non serve a ciò che serve a te (non è che vieni da java per caso?)

    Per face ciò che ti interessa passa nel costruttore delle 2 classi un'istanza (oggetto) di tipo contenitore su cui chiedere poi le variabili.

  3. #3
    Moderatore di Programmazione L'avatar di LeleFT
    Registrato dal
    Jun 2003
    Messaggi
    17,320

    Moderazione

    C# e tutti i suoi fratelli .NET vengono trattati nel forum che si chiama VisualBasic e .NET Framework...


    Sposto.


    Ciao.
    "Perchè spendere anche solo 5 dollari per un S.O., quando posso averne uno gratis e spendere quei 5 dollari per 5 bottiglie di birra?" [Jon "maddog" Hall]
    Fatti non foste a viver come bruti, ma per seguir virtute e canoscenza

  4. #4
    Utente di HTML.it
    Registrato dal
    Oct 2005
    Messaggi
    98
    No no.. non vengo da java.. A dire il vero non ho mai programmato ad oggetti. Ora provo a fare come dici tu e vediamo.

    Grazie mille per la dritta!

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.