C# Eseguire un controllo ricorsivo su più TextBox.(it-IT)
Mediante questa funzione saremo in gradi di andare a verificare se all'interno di uno o più controlli TextBlock ci sia un determinato valore. Andiamo ad analizzare il codice C#
private bool CheckText (string []values, params TextBox []tetxboxes)
{
var result = false;
for (var i = 0; i < tetxboxes.Count() ; i++)
{
for (var j = 0; j < values.Count() ; j++)
{
if (tetxboxes[i].Text.Contains(values[j]))
{
result = true;
}
}
}
return result;
}
La funzione richiede 2 argomenti , la prima una matrice di stringhe sulla quale accertarsi durante la fase di convalida , ovvero al momento per esempio di eseguire un tap su un button , la si può valorizzare in diversi modi , o con del testo statico come in questo caso , con delle variabili o anche con altre TextBox , interessante e invece la keyword params . Come dice la documentazione ufficiale Msdn
"Utilizzando la parola chiave params, è possibile specificare un parametro di metodo che utilizza un numero variabile di argomenti.
È possibile inviare un elenco di argomenti separato da virgole del tipo specificato nella dichiarazione di parametri o una matrice di argomenti del tipo specificato È inoltre possibile non inviare alcun argomento.Se non vengono inviati argomenti, la lunghezza dell'elenco params è zero.
In una dichiarazione di metodo non è possibile aggiungere ulteriori parametri dopo la parola chiave params ed è consentito l'uso di una sola parola chiave params."
In questo caso si ha la possibilità di eseguire lo stesso controllo su più TextBox , come spiegato su Msdn la possibilità di inserire più oggetti del tipo dichiarato ovviamente per il controllo TextBox in questo caso.
Per utilizzare la funzione procedere in questo modo.
private void btn1_Tap(object sender, System.Windows.Input.GestureEventArgs e)
{
if( CheckText(new []{"gatto","cane"},txt1,txt2).Equals(true))
{
// codice da eseguire
}
else
{
MessageBox.Show("Nessun valore presente!");
}
}