stringhe globali C#

Allfreeware

Utente Attivo
193
0
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!
 

Arcovoltaico77

Utente Èlite
1,558
10
CPU
Core 2 Duo E2200 + Thermaltake silent tower 112cu (1,3 Kg)
Scheda Madre
Asus P5B
HDD
160Gb Maxtor SATA2 + WD Caviar 250GB SATA2
RAM
2 * 1Gb Corsair CL4 (Pc4300, Value Select)
GPU
Point of View 6600GT 256Mb (500-1000 @ 571-1183)
Audio
integrato 5.1
Monitor
LCD 17 samsung
PSU
Enermax Pro82+ 525 Watt
Case
ColorsIT
OS
Windows XP & Ubuntu
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
 

Arcovoltaico77

Utente Èlite
1,558
10
CPU
Core 2 Duo E2200 + Thermaltake silent tower 112cu (1,3 Kg)
Scheda Madre
Asus P5B
HDD
160Gb Maxtor SATA2 + WD Caviar 250GB SATA2
RAM
2 * 1Gb Corsair CL4 (Pc4300, Value Select)
GPU
Point of View 6600GT 256Mb (500-1000 @ 571-1183)
Audio
integrato 5.1
Monitor
LCD 17 samsung
PSU
Enermax Pro82+ 525 Watt
Case
ColorsIT
OS
Windows XP & Ubuntu
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...
 

Allfreeware

Utente Attivo
193
0
Ah ok, ora ho capito.In pratica faccio una classe pubblica dove fare tutti gli smanettamenti possibili:lol:
Grazie.
Ciao!
 

Allfreeware

Utente Attivo
193
0
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.
 

gipasoft

Nuovo Utente
11
1
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
 

Allfreeware

Utente Attivo
193
0
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.
        }
 

gipasoft

Nuovo Utente
11
1
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
 

Ci sono discussioni simili a riguardo, dai un'occhiata!

Entra

oppure Accedi utilizzando
Discord Ufficiale Entra ora!

Discussioni Simili