Neden bu (null || !yapar TryParse) "şartlı sonuç yerel değişken" atanmamış;?
Aşağıdaki kodu oluratanmamış yerel değişken kullanın"" . numberOfGroups :
int numberOfGroups;
if(options.NumberOfGroups == null || !int.TryParse(options.NumberOfGroups, out numberOfGroups))
{
numberOfGroups = 10;
}
Ancak, bu kod gayet iyi çalışıyor (, ReSharper = 10
gereksiz diyor gerçi):
int numberOfGroups = 10;
if(options.NumberOfGroups == null || !int.TryParse(options.NumberOfGroups, out numberOfGroups))
{
numberOfGroups = 10;
}
Bir şey eksik, ya da derleyici benim sevme ||
mıyım?
Bu dynamic
sorunları (options
yukarıda benim kod dinamik bir değişken oldu) neden indirdim. Soru hala kalırneden bunu yapamıyorum?
Bu kodyokderleme:
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
}
Ancak, bu kodyok:
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
}
dynamic
Bu bir etken olabilir mi bilmiyordum.
CEVAP
Bu derleyici bir hata olduğundan eminim. İyi buluş!
Bir hata değil, Quartermeister gösterdiği gibi; dinamik true
garip bir operatör uygulayabilir y
asla başlatılması için neden olabilir. Edit:
Burada en az kopya:
class Program
{
static bool M(out int x)
{
x = 123;
return true;
}
static int N(dynamic d)
{
int y;
if(d || M(out y))
y = 10;
return y;
}
}
Yasadışı olması için bir neden göremiyorum; eğer bool ile dinamik değiştirirseniz gayet güzel derler.
Aslında C ile buluşacağım# takım yarın; onlara bu konudan söz edeceğim. Hata için özür dilerim!
Neden sık sık&; null! = " görüyor mu d...
Neden Html yapar.Render " ActionLi...
Neden Boole yapar.Ve " değil olabi...
Neden boş bir liste için atama yapar (...
Neden 0 yapar.(&;#.##"&Olabilirdi quot...