private readonly bool _enabled;
public Foo() { _enabled = int.IsEvenInteger(System.DateTime.Now.Millisecond); }
public bool Enabled() => _enabled;
private static string Test(bool left, bool right)
=> (left == right ? "Passed" : "Failed");
public static void Main()
Console.WriteLine("Hello, Zbyněk Novotný!");
Console.WriteLine("https://github.com/ThreeMammals/Ocelot/pull/1684#discussion_r1293789996");
Foo[] variants = new Foo[] { null, new Foo() };
for (int i = 0; i < variants.Length; i++)
Foo options = variants[i];
Console.WriteLine($"\nTest {i + 1}: options is " + (options == null ? "null" : "not null"));
Console.WriteLine($" Old expression: options == null || !options.Enabled();");
bool old = options == null || !options.Enabled();
Console.WriteLine($" Value is {old}");
Console.WriteLine($" New expression 1: !(options?.Enabled() ?? false);");
bool ex1 = !(options?.Enabled() ?? false);
Console.WriteLine($" Value is {ex1}");
Console.WriteLine(" " + Test(old, ex1));
Console.WriteLine($" New expression 2: options?.Enabled() != true;");
bool ex2 = options?.Enabled() != true;
Console.WriteLine($" Value is {ex2}");
Console.WriteLine(" " + Test(old, ex2));