CSharp · Console
using System;
public class Program
{
public static void Main()
{
Console.WriteLine(IsAnyValueZero((1, 1)));
Console.WriteLine(IsAnyValueZero((0, 1)));
Console.WriteLine(IsAnyValueZero((1, 0)));
Console.WriteLine(IsAnyValueZero((0, 0)));
Console.WriteLine();
Console.WriteLine(IsAnyValueZero2((1, 1)));
Console.WriteLine(IsAnyValueZero2((0, 1)));
Console.WriteLine(IsAnyValueZero2((1, 0)));
Console.WriteLine(IsAnyValueZero2((0, 0)));
Console.WriteLine();
Console.WriteLine(IsAnyValueZero2((1, 1)));
Console.WriteLine(IsAnyValueZero2((0, 1)));
Console.WriteLine(IsAnyValueZero2((1, 0)));
Console.WriteLine(IsAnyValueZero2((0, 0)));
}
public static bool IsAnyValueZero((decimal, decimal) aTuple)
{
switch(aTuple)
{
case (0, _):
return true;
case (_, 0):
return true;
}
return false;
}
public static bool IsAnyValueZero2((decimal, decimal) aTuple)
{
switch(aTuple)
{
case (decimal i1, decimal i2) when i1 == 0 || i2 == 0:
return true;
}
return false;
}
public static bool IsAnyValueZero3((decimal, decimal) aTuple)
{
switch (aTuple)
{
// Discards (underscores) are required in C# 8. In C# 9 we will
// be able to write this case without discards.
// See https://github.com/dotnet/csharplang/blob/master/proposals/csharp-9.0/patterns3.md#type-patterns.
case (decimal _, decimal _) t when t.Item1 == 0 || t.Item2 == 0:
return true;
}
return false;
}
}