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

    [c#] visibilità variabili, principiante

    sto realizzando la mia prima applicazione, una calcolatrice, ma purtroppo non ho esperienza di prog. ad oggetti e c#, aiutatemi a capire come far leggere le variabili

    qui prendo il numero dal textbox e lo metto nella variabile operatore1

    public void operatore(string op)
    {
    double operatore1 = Convert.ToDouble(textBox1.Text);
    string operatore = op;
    string display = op;
    textBox1.Text=display;
    }


    premendo uguale avrei bisogno di riprendere operatore1 ed aggiungerlo ad operatore2

    public void buttonuguale_Click(object sender, EventArgs e)
    {


    double operatore2 = Convert.ToDouble(textBox1.Text);
    double risultato = operatore2 + operatore1;

    string display = Convert.ToString(risultato);
    textBox1.Text = display;
    }

    come faccio a far leggere variabili tra metodi?

  2. #2
    Utente di HTML.it L'avatar di oregon
    Registrato dal
    Jul 2005
    residenza
    Roma
    Messaggi
    36,480
    Non devono essere definite all'interno dei due metodi, ma come elementi privati della classe (membri privati).

    E ti consiglio di chiamarli operandi ...

  3. #3
    mi faresti un piccolo esempio?

    ammettiamo che io dichiari la variabile a livello di classe, poi posso richiamarla dentro un metodo, cambiargli valore ed utilizzarla con il nuovo valore dentro altri metodi?

    è fattibile?

  4. #4
    Utente di HTML.it L'avatar di oregon
    Registrato dal
    Jul 2005
    residenza
    Roma
    Messaggi
    36,480
    Certo ... hai provato?

  5. #5
    allora sbaglio qualcosa, la variabile mi rimane sempre a 0, il valore iniziale, dai un occhiata.

    public partial class Form1 : Form
    {


    public double operatore1 = 0;


    public Form1()
    {
    InitializeComponent();
    }

    private void Form1_Load(object sender, EventArgs e)
    {

    }



    public void Numeri(double num)
    {
    double num1 = num;
    string display = Convert.ToString(num);

    if (textBox1.Text.Length == 10)
    {
    MessageBox.Show("Inserire massimo 10 numeri.");
    }
    else
    {
    textBox1.AppendText(display);
    }
    }


    public void operazione(string op)
    {
    double operatore1 = Convert.ToDouble(textBox1.Text);
    string operazione = op;
    string display = op;
    textBox1.Text = display;
    }





    public void button1_Click(object sender, EventArgs e)
    {
    Numeri(1);
    }

    public void button2_Click(object sender, EventArgs e)
    {
    Numeri(2);
    }


    public void buttonpiu_Click(object sender, EventArgs e)
    {
    operarazione("+");
    }




    public void buttonuguale_Click(object sender, EventArgs e)
    {

    double operatore2 = Convert.ToDouble(textBox1.Text);
    double risultato = operatore2 + operatore1;
    string display = Convert.ToString(risultato);
    textBox1.Text = display;

    }


    }

    quando invoco operazione la var operatore1 mi prende il valore del textbox e ci siamo
    quando invoco il risultato operatore1 è di nuovo a zero

  6. #6
    Utente di HTML.it L'avatar di oregon
    Registrato dal
    Jul 2005
    residenza
    Roma
    Messaggi
    36,480
    Se dichiari una variabile operatore1 come membro della classe (che fra l'altro dovrebbe essere private e non public), non devi dichiarare piu' la stessa variabile all'interno del metodo, ma devi usare la prima.

    Non deve quindi essere

    double operatore1 = Convert.ToDouble(textBox1.Text);

    ma

    operatore1 = Convert.ToDouble(textBox1.Text);

  7. #7
    cacchio è vero
    guarda l'inesperienza cosa mi ha portato a fare

    grazie, mi sei stato di grande aiuto nel mio processo di apprendimento

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.