Aşağıdaki kod sonuçları:Neden bu (null ||! TryParse) koşullu "atanmamış yerel değişkenin kullanımı" sonucunu verir?</em> atanmamış yerel değişken "numberOfGroups" nin <em>kullanımda
int numberOfGroups;
if(options.NumberOfGroups == null || !int.TryParse(options.NumberOfGroups, out numberOfGroups))
{
numberOfGroups = 10;
}
Ancak bu kod çalışıyor (gerçi, ReSharper= 10
gereksiz olduğunu söylüyor):
int numberOfGroups = 10;
if(options.NumberOfGroups == null || !int.TryParse(options.NumberOfGroups, out numberOfGroups))
{
numberOfGroups = 10;
}
Am Bir şey mi eksik, yoksa derleyici ||
'umu beğenmiyor mu?
Bu soruna neden olarak dynamic
nedenini daraltdım (options
yukarıdaki kodumda dinamik bir değişkendi). Soru hala devam ediyor, neden bunu yapamıyorum?
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 kod yapar:
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
}
ben dynamic
bu bir faktör olacağını fark etmedi
Bu kod derleme yapmaz.
o kadar akıllı düşünmüyor musunuz:
Yapı Eric Lippert en repro kapalı, burada ne yol idam edilecek ve değişken başlangıç değerine sahip olacak bir talebi gösterir kısa ve tam bir programdır – Charleh
girdisi olarak 'out' parametresine iletilen değeri kullanmadığınızı bilmek, burada hata nedir? Gösterdiğiniz koddan sonra 'numberOfGroups' * kullanılıyor mu? Sorunu gösteren kısa ama eksiksiz bir programı göstermek için soruyu değiştirebilir misiniz? –
Burada verilen kod açıklanan davranışı göstermez; Sadece iyi çalışıyor. Lütfen * aslında tanımladığınız davranışı gösteren * kendimizi derleyebileceğimiz bir kod yayınlayın. Bize tüm dosyayı ver. –