Załóż program C# z dwiema wartościami dziesiętnymi z wartościami zerowymi A i B. Następujący dodatek zwraca tylko wartość A: var result = A ?? 0 + B ?? 0; Poprawne użycie to: var result = (A? 0) + (B ?? 0);Dodatek C# z wartościami dziesiętnymi z wartościami zerowymi i nadrzędnością ?? operator
Przykładowy program konsoli:
class Program
{
static void Main(string[] args)
{
A = (decimal)0.11;
B = (decimal)0.69;
NullableDecimalAddition();
Console.ReadLine();
}
public static decimal? A { get; set; }
public static decimal? B { get; set; }
private static void NullableDecimalAddition()
{
decimal result1 = A ?? 0 + B ?? 0;
decimal result2 = (A ?? 0) + (B ?? 0);
Console.WriteLine("result1: " + result1); // = 0.11
Console.WriteLine("result2: " + result2); // = 0.80
}
}
Moje pytanie brzmi co dzieje się podczas obliczania z wynik1. Jak jest pierwszeństwo + i ?? operatorzy?
OK, dziękuję za poprawną odpowiedź – FSou1
Jest genialny, gdy otrzymujemy tego rodzaju informacje. –
Dziękuję wszystkim za odpowiedzi i wyjaśnienia. – Nicolo