.NET Fiddle

CSharp · Console

/Program.cs

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;
	}
}
;