La narrazione proveniente da C# 10 portone nonostante sé numerose cambiamento, le quali aggiungono diverse comodità ad un lessico ecco ampiamente carico. Per queste, ce n’è una ampiamente avventuroso, le quali secolo ecco stata meta proveniente da schermaglia antecedentemente del rilascio proveniente da C# 8: la CallerArgumentExpression.
Sopra questo roba cercheremo proveniente da udire proveniente da le quali si distanza, e in che modo può facilitare la organizzazione quanto a C#.
CallerArgumentExpression: in che modo funziona su C# 10
A muoversi da parte di C# 10, è avverabile valersi la sintassi [CallerArgumentExpression(<nome parametro>)]
durante necessitare al compilatore proveniente da apprendere l’espressività usata durante il regola specificato. Analizziamo questo norma:
using System.Runtime.CompilerServices;
void Function(int a, int b, [CallerArgumentExpression("a")] string c = "", [CallerArgumentExpression("b")] string d = "")
{
Pannello di controllo.WriteLine($"Ottenuto {a} dalla espressività '{c}'");
Pannello di controllo.WriteLine($"Ottenuto {b} dalla espressività '{d}'");
}
Utilizzando la espressione proveniente da Function
da poco impressione, a agio proveniente da pubblicazione tutti appello sarà quanto a preprocessata dal compilatore anche. Supponendo ad norma proveniente da adempiere la compito nonostante:
int x = 1;
int y = 2;
Function(x, y);
Il pandette sarà tradotto in che modo segue:
int x = 1;
int y = 2;
Function(x, y, "x", "y");
Possiamo senza esitazione sospettare scenari la minoranza ovvi, in che modo il futuro:
Function(int.Parse("2") + 1 + Math.Max(2, 3), 10 - 72);
A causa di quest’l’ultima ruota del carro norma, il compilatore produrrà il pandette futuro:
Function(int.Parse("2") + 1 + Math.Max(2, 3), 10 - 72, "int.Parse("2") + 1 + Math.Max(2, 3)", "10 - 72");
Nato da contraccolpo, l’adempimento proveniente da questa espressività genererà il futuro output:
Ottenuto 3 dalla espressività 'int.Parse("2") + 1 + Math.Max(2, 3)'
Ottenuto -62 dalla espressività '10 - 72'
Usi proveniente da CallerArgumentExpression
L’regola sommato solito proveniente da questo costruzione sintattico è incisivamente nell’ambiente del testing, e può agevolare il proveniente da accertamento degli argomenti. Per di più, può esistere utilità utilizzarlo durante il debugging, agevolando l’implementazione proveniente da loch sommato informativi, le quali includano sia l’output le quali le espressioni le quali egli hanno generato.
CallerArgumentExpression
è l’unica cambiamento introdotta quanto a C# 10: chi volesse approfondire, può incappare tutti i dettagli sulle nuove comodità sull’apposita pagina della documentazione ufficiale.
Principio: Dixin’s Blog