Mam metodę tak:Usunąć błąd "Użyj nieprzypisanej zmiennej lokalnej"?
public static long? FromIpv4ToLong(this string ipAddress)
{
var octets = ipAddress.Split(IpSplitChar);
if (octets.Length != 4) return null;
var success = long.TryParse(octets[0], out long a)
&& long.TryParse(octets[1], out long b)
&& long.TryParse(octets[2], out long c)
&& long.TryParse(octets[3], out long d);
if (!success) return null;
return ((16777216L * a) + (65536L * b) + (256L * c) + d);
}
... teraz, zmienne a
, b
, c
, a d
nigdy nie będzie „nieprzypisane” przez miejsca, w którym będą się odwoływać, ale kompilator nie robi nie widzisz tego w ten sposób. Czy istnieje sposób, w jaki mogę zmusić kompilator do "zbudowania go w każdym razie"? Wydaje się głupim zainicjowanie tych wartości z wyprzedzeniem.
Należy rozważyć użycie 'IPAddress.TryParse' będzie to akceptują nieprawidłowe adresy IP4 . – Lee
Pracuję w celu wymiany reklam online; przetwarzamy adresy IP 60-100K na sekundę, z SLA o długości dwóch cyfr milisekund. 'IPAddress.TryParse' dodaje zauważalne opóźnienie i dlatego jest verboten. Możemy użyć tylko najprostszych, najszybszych i najbardziej wydajnych algorytmów do tego typu rzeczy. –