Answering your question technically, you can use whento check the values of tuples:
(char letterA, char letterB) _test = ('A', 'B');
Console.WriteLine($"Letter A: '{_test.letterA}', Letter B: '{_test.letterB}'");
switch (_test)
{
case var tuple when tuple.letterA == 'A' && tuple.letterB == 'B':
Console.WriteLine("Case ok.");
break;
case var tuple when tuple.letterA == 'D' && tuple.letterB == '\0':
Console.WriteLine("Case ok.");
break;
}
However, consider using a version if, because it may be a more readable and understandable solution.
- . , A B, D \0 , .
, .
- :
private static bool IsCaseOk(char a, char b)
{
return (a == 'A' && b == 'B') || (a == 'D' && b == '\0');
}
public static void Main()
{
(char letterA, char letterB) _test = ('A', 'B');
Console.WriteLine($"Letter A: '{_test.letterA}', Letter B: '{_test.letterB}'");
if (IsCaseOk(_test.letterA, _test.letterB)) {
Console.WriteLine("Case ok.");
} else {
Console.WriteLine("Case not ok.");
}
}
- , , , char .