Gestire i comandi ricevuti senza if-else if

sabato 05 aprile 2008 - 10.57

JohnAsh Profilo | Junior Member

Ciao a tutti,

ho creato un'applicazione che riceve dei comandi tramite una socket aperta verso un client.
Ho un metodo che si occupa di ricevere la stringa inviata dal client, dopodicchè ci sono un'infinità di if-else if (uno per ogni comando) che si occupano di "inoltrare" il comando alla relativa funzione per svolgere l'operazione richiesta.

Sto cercando un modo più "elegante" di gestire i comandi, in C usavo un array bidimensionale, in cui creavo una corrispondeza tra il comando ed un puntatore alla funzione che si occupa della sua gestione. In questo modo, alla ricezione della stringa dal client, facevo un semplice for all'interno del'array e richiamavo la funzione referenziata dal puntatore corrispondente al comando ricevuto.

Il problema è che non ho la minima idea di come replicare lo stesso meccanismo in .NET (C++).

Qualcuno può aiutarmi? Anche suggerendo altri metodi per la gestione, basta che tolgo da mezzo tutti questi if .. che mi fanno letteralmente impazzire.

Grazie in anticipo.

Dainesi Profilo | Senior Member

Perché non un banale Select Case ... End Select ?

Enne Profilo | Junior Member

switch(stringValue) { case "Value 1": DoSomething(); break; case "Value 2": DoSomething(); break; case "Value 3"; DoSomething(); break; default: DoSomething(); break; }

Rocco Verrastro
.NET Programmer - Web Developer

Dainesi Profilo | Senior Member

Bravo Enne ! In C e C++ c'è lo switch e non Select tipico del Basic!
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-2023
Running on Windows Server 2008 R2 Standard, SQL Server 2012 & ASP.NET 3.5