Come da titolo, come si rendono opzionali i parametri di un metodo in C# 3.5 ?
Come da titolo, come si rendono opzionali i parametri di un metodo in C# 3.5 ?
press play on tape
-----
MP3 Listing
https://sourceforge.net/projects/mp3-listing
File Listing
https://sourceforge.net/projects/file-listing-2-0/
credo proprio che l'unica sia l'overload dei metodi.
in mvc 1.0 (quando la versione di c# era appunto la 2008) tirarono fuori un attributo per questo ma era una cosa specifica per mvc.
Sicuramente l'overload è una soluzione corretta.
Nel caso in cui i parametri siano omogenei (con object anche no) ed hai la necessità di gestire una variazione in numero con un delta ampio, puoi utilizzare la parola chiave params.
Di seguito un esempio di un metodo che utilizza params nella firma, e i possibili modi per sfruttarlo quando chiami il metodo
codice:protected int Somma(params int[] valori) { foreach (int valore in valori) ... ... }codice:int x; x = Somma(1); x = Somma(1,2,3,4); int[] addendi = new int[] {1,2,3}; x = Somma(addendi);
________________________________
http://glucolo.wordpress.com
http://www.liveperson.com/glauco-cucchiar/
grazie ad entrambi. ero stato portato fuori pista dal fatto che nella versione 4.5 (VS 2012) a quanto pare sarà possibile:
http://msdn.microsoft.com/it-it/library/dd264739.aspx
Riporto il metodo con il secondo ed il terzo parametro opzionali:
codice:// The first parameter, required, has no default value assigned // to it. Therefore, it is not optional. Both optionalstr and // optionalint have default values assigned to them. They are optional. public void ExampleMethod(int required, string optionalstr = "default string", int optionalint = 10) { Console.WriteLine("{0}: {1}, {2}, and {3}.", _name, required, optionalstr, optionalint); }
press play on tape
-----
MP3 Listing
https://sourceforge.net/projects/mp3-listing
File Listing
https://sourceforge.net/projects/file-listing-2-0/
buono a sapersi......
in verità in VS 2010, indipendentemente dal framework utlizzato , è già contemplato. (dipende dalla versione di C#)
mi piacerebbe vedere il compilato a cosa corrisponde; sono pronto a scommettere che è equivalente (o quasi) ad un overload del metodo.........
ma ora non ho tempo ......![]()
![]()
________________________________
http://glucolo.wordpress.com
http://www.liveperson.com/glauco-cucchiar/
Li spulceremo fra un po' di mesi, ora applico l'overloading
grazie
press play on tape
-----
MP3 Listing
https://sourceforge.net/projects/mp3-listing
File Listing
https://sourceforge.net/projects/file-listing-2-0/