Funzioni

martedì 19 gennaio 2010 - 20.00

gae58 Profilo | Senior Member

un saluto a tutti, è parecchio che manco da questo NG e pur con difficoltà riprendo lo studio di ASPNET 2.0 e C#.

Quello che vorrei studiare sono le funzioni, spero si chiamino così. Es.:

in un if else, vorrei richiamare delle funzioni ed ho scritto questo codice

...
strin Testo = "";

if Chi == 'A'
Funzione1( "Cambio1");
else
if Chi == 'B'
Funzione2("Cambio2")

Funzione 1 e 2 dovrebbero contere del codice da elaborare e soprattuto fovrei passare delle var tipo cambio 1 e 2


Dopo aver scritto Funzione1, la F era sottilineata e mi diceva se volevo creare la funzione e mi ha creato private void Funzione1
ho provato all'interno a leggere la Var cambio1, ma niente.

Qualcuno mi sa dire cosa posso leggere o cercare per capire come creare funzioji e passare e ritornare dati?

grazie


Gaetano

tonyexpo Profilo | Senior Member

Ciao

il tuo codice dovrebbe essere così:

string Funzione1(string parametro1) //string è il tipo di valore di ritorno, string è anhce il tipo del parametro
{
return parametro1.ToUpper(); //in questo esempio ritorno (con la keyword return) il parametro in versione tutto maiuscolo
}


var a = "a";

if (a=="a") // ad esempio
var ritorno1 = Funzione1("testami");
else
var ritorno2 = Funzione1("testami2");


spero di essere stato chiaro, altrimenti scrivi pure
ciao


Antonio Esposito
MCTS, MCP

http://blogs.dotnethell.it/espositos

gae58 Profilo | Senior Member

ciao Antonio, ho dovuto cambiare una piccola cosa per il C# (non te l'avevo detto) e funziona bene.

Adesso vorrei fare un passao avanti. Come ti dicevo ho 4 pulsanti che devono accedere ad una funzione. Questa funzione a seconda del bottone che è stato premuto, deve passare una variabile alla funzione centralizzata.

Mi spiego, i quattro bottoni richiamano :
protected void btnAzzera_Click(object sender, EventArgs e)

Vorrei usare la proprietà CommandArgument o CommandName leggere il contenuto della proprietà e sapere quale bottone sia stato premuto, ma mi ritorna un errore.
e.CommandName

Forse devo usare qualche altra proprietà?


Gaetano

tonyexpo Profilo | Senior Member

Ciao Gaetano

scusa il ritardo


per confrontare quale controllo sta invocando il tuo metodo devi fare così:
if (sender.equals(this.Button1)) //pulsante1 else if (sender.equals(this.Button2)) //pulsante2 else //else

il controllo è il "sender" quindi dovrai semplicemente confrontarlo con l'oggetto del form per capire così qual'è


a presto


Antonio Esposito
MCTS, MCP

http://blogs.dotnethell.it/espositos

gae58 Profilo | Senior Member

ma quale ritardo, sei stato velocissimo.

Ho provato il codice che mi hai indicato:
if (sender.equals(this.btnAzzera))
{Response.Write("a");}
else if (sender.equals(this.btnAzzeDebito))
{Response.Write("b");}

ma mi riporta l'errore:
Messaggio di errore del compilatore: CS0117: 'object' non contiene una definizione per 'equals'.

Sicuramente ho sbagliato io qualcosa, probabilmente in :
this.btnAzzera

uso C#

ciao

Gaetano

tonyexpo Profilo | Senior Member

verifica che il nome è scritto con la maiuscola: sender.Equals(Button1)

altrimenti fammi sapere
ciao

Antonio Esposito
MCTS, MCP

http://blogs.dotnethell.it/espositos

gae58 Profilo | Senior Member

ti ringrazio e mi scuso per la svista.

Tale controllo è possibile solo sull'ID del bottone o anche sul commandName od commandArgument?


Gaetano

tonyexpo Profilo | Senior Member

Ciao

con il .Equals stai verificando che due variabili puntino allo stesso oggetto.

.CommandName e .CommandArgumentssono utilizzati in una griglia on un repeater dove hai tanti pulsanti con lo stesso nome e hai bisogno di capire quale è stato premuto, magari mettendo una qualche chiave nel CommandArgument...

Nel tuo caso gli oggetti sono esplicitamente diversi, quindi non hai questo problema

ciao

Antonio Esposito
MCTS, MCP

http://blogs.dotnethell.it/espositos

gae58 Profilo | Senior Member

ti ringrazio

Gaetano
Partecipa anche tu! Registrati!
Hai bisogno di aiuto ?
Perchè non ti registri subito?

Dopo esserti registrato potrai chiedere
aiuto sul nostro Forum oppure aiutare gli altri

Consulta le Stanze disponibili.

Registrati ora !
Copyright © dotNetHell.it 2002-2017
Running on Windows Server 2008 R2 Standard, SQL Server 2012 & ASP.NET 3.5