Kode berikut menghasilkan penggunaan variabel lokal "numberOfGroups" yang tidak ditetapkan :
int numberOfGroups;
if(options.NumberOfGroups == null || !int.TryParse(options.NumberOfGroups, out numberOfGroups))
{
numberOfGroups = 10;
}
Namun, kode ini berfungsi dengan baik (meskipun, ReSharper mengatakan = 10
itu berlebihan):
int numberOfGroups = 10;
if(options.NumberOfGroups == null || !int.TryParse(options.NumberOfGroups, out numberOfGroups))
{
numberOfGroups = 10;
}
Apakah saya melewatkan sesuatu, atau kompiler tidak menyukai saya ||
?
Saya telah mempersempit ini menjadi dynamic
penyebab masalah ( options
adalah variabel dinamis dalam kode saya di atas). Pertanyaannya masih ada, mengapa saya tidak bisa melakukan ini ?
Kode ini tidak dapat dikompilasi:
internal class Program
{
#region Static Methods
private static void Main(string[] args)
{
dynamic myString = args[0];
int myInt;
if(myString == null || !int.TryParse(myString, out myInt))
{
myInt = 10;
}
Console.WriteLine(myInt);
}
#endregion
}
Namun, kode ini tidak :
internal class Program
{
#region Static Methods
private static void Main(string[] args)
{
var myString = args[0]; // var would be string
int myInt;
if(myString == null || !int.TryParse(myString, out myInt))
{
myInt = 10;
}
Console.WriteLine(myInt);
}
#endregion
}
Saya tidak menyadari dynamic
akan menjadi faktor dalam hal ini.
out
parameter Anda sebagai masukan