stringhe globali C#

Pubblicità

Allfreeware

Utente Attivo
Messaggi
193
Reazioni
0
Punteggio
38
Ciao a tutti.
Ho un problema con il C#.
Praticamente in una classe ho uno stream:

Codice:
FileStream fin = new FileStream("files\\acs\\guidacr.dat", FileMode.Open, FileAccess.Read);
Il problema è che vale solo per quella classe.
Allora ho provato a mettere
Codice:
public FileStream fin = new FileStream("files\\acs\\guidacr.dat", FileMode.Open, FileAccess.Read);
però mi dice che "public" non è un termine valido nell'espressione.
Come faccio ad accedere a quello stream da tute le parti del programma?
Grazie.
Ciao!
 
Ciao...

Dall' help/forum di msdn dice che una possibilità e dichiarare la variabile public e static, come di seguito :

public class MyGlobals
{
public static int MyGlobalInt = 4;
}

Però dice che è anche possibile aggiungere una property pubblica per fare set e get della variabile, che rimarrebbe protetta, in questo caso( e potresti aggiungere anche del codice di controllo per evitare errori).

Personalmente sceglierei la seconda ipotesi :D
 
e te pareva, microzozz non se smentisce MAI... in msdn non c'è UNA riga di codice funzionante eheh...

la seconda idea era di creare un paio di metodi pubblci per fare il get ed il set del FileStream, tipo così : (scrivo come viene, scusa c' ho il c# un pò arrugginito, ultimamente ho usato solo altri linguaggi) :

public class test
{
FileStream fin = new FileStream();

public FileStream getFileStream()
{
return fin;
}

public FileStream setFileStream(FileStream NewFileStream)
{
fin = NewFileStream;
}
}

Spero di aver chiarito un pò l' idea :D
praticamente chiamando il metodo getFileStream su un oggetto della classe test, hai come ritorno il FileStream che volevi...
 
Ho provato ma non funziona.Anche così

Codice:
 public void radioButton3_CheckedChanged(object sender, EventArgs e)
        {
           public int level = 3;
        }
Ma mi da' sempre lo stesso errore.
Non so' più cosa fare.
 
Ho provato ma non funziona.Anche così

Codice:
 public void radioButton3_CheckedChanged(object sender, EventArgs e)
        {
           public int level = 3;
        }
Ma mi da' sempre lo stesso errore.
Non so' più cosa fare.

Ma il metodo pubblico lo hai definito all'interno della definizione della classe? Posta anche un po' di codice che "intorno" al tuo metodo
 
Codice:
namespace multi_Encrypt
{
    public partial class Form1 : Form
    {
        public Form1()
        {
            progressBar1.Maximum = 100;
            progressBar1.Minimum = 0;
            InitializeComponent();
        }

        private void textBox1_TextChanged(object sender, EventArgs e)
        {
        }
        private void textBox2_TextChanged(object sender, EventArgs e)
        {
        }
        private void radioButton1_CheckedChanged(object sender, EventArgs e)
        {
        }

        private void radioButton2_CheckedChanged(object sender, EventArgs e)
        {
        }

        public void radioButton3_CheckedChanged(object sender, EventArgs e)
        {
                //anche se dichiaro quì una variabile nn posso usarla nelle altre classi public.
        }
 
Codice:
namespace multi_Encrypt
{
    public partial class Form1 : Form
    {
        public Form1()
        {
            progressBar1.Maximum = 100;
            progressBar1.Minimum = 0;
            InitializeComponent();
        }

        private void textBox1_TextChanged(object sender, EventArgs e)
        {
        }
        private void textBox2_TextChanged(object sender, EventArgs e)
        {
        }
        private void radioButton1_CheckedChanged(object sender, EventArgs e)
        {
        }

        private void radioButton2_CheckedChanged(object sender, EventArgs e)
        {
        }

        public void radioButton3_CheckedChanged(object sender, EventArgs e)
        {
                //anche se dichiaro quì una variabile nn posso usarla nelle altre classi public.
        }

Non ha senso dichiarare un variabile public dentro un metodo.... la variabile public deve essere a livello di classe:

Codice:
namespace multi_Encrypt
{
    public partial class Form1 : Form
    {
        private string _miaVariabile;

        public Form1()
        {
            progressBar1.Maximum = 100;
            progressBar1.Minimum = 0;
            InitializeComponent();
        }

        private void textBox1_TextChanged(object sender, EventArgs e)
        {
        }
        private void textBox2_TextChanged(object sender, EventArgs e)
        {
        }
        private void radioButton1_CheckedChanged(object sender, EventArgs e)
        {
        }

        private void radioButton2_CheckedChanged(object sender, EventArgs e)
        {
        }

        public void radioButton3_CheckedChanged(object sender, EventArgs e)
        {
             _miaVariabile = <qualche cosa>;
        }
       
        public string MiaVariabile
        {
              get
              {
                   return _miaVariabile;
               }
        }
}
potresti anche definire _miaVariabile direttamente come public e non usare la property MiaVariabile, però il codice che ti ho postato è più prolisso ma più corretto: il modo per accedere e/o modificare il valore della variabile deve restare incapsulato nella classe.

Ciao
 
Pubblicità
Pubblicità
Indietro
Top