如何在 C# 的 switch 表达式中创建一个空的 default case?
How to make an empty default case in switch expression in C#?
如何在 C# 的 switch 表达式中创建一个空的 default case?
我说的是 this 语言功能。
这是我正在尝试的:
using System;
public class Program
{
public static void Main()
{
int i = -2;
var ignore = i switch {
-1 => Console.WriteLine("foo"),
-2 => Console.WriteLine("bar"),
_ => ,
};
}
}
此外,我试过没有逗号:
using System;
public class Program
{
public static void Main()
{
int i = -2;
var ignore = i switch {
-1 => Console.WriteLine("foo"),
-2 => Console.WriteLine("bar"),
_ =>
};
}
}
还是不想编译。所以,我试着放一个空函数:
using System;
public class Program
{
public static void Main()
{
int i = -2;
var ignore = i switch {
-1 => Console.WriteLine("foo"),
-2 => Console.WriteLine("bar"),
_ => {}
};
}
}
还是不行。
与所有表达式一样,开关 表达式 必须能够计算出一个值。
为了您的目的,switch 语句 是正确的构造:
int i = -2;
switch (i)
{
case -1:
Console.WriteLine("foo");
break;
case -2:
Console.WriteLine("bar");
break;
}
您正在研究 表达式 switch
确切的表达式。所有表达式必须return一个值;而 Console.WriteLine
是类型 void
returns nothing.
到fiddle用switch
表达式你可以试试
public static void Main() {
int i = -2;
// switch expression: given i (int) it returns text (string)
var text = i switch {
-1 => "foo",
-2 => "ignore",
_ => "???" // or default, string.Empty etc.
};
Console.WriteLine(text);
}
或将表达式放入WriteLine
:
public static void Main() {
int i = -2;
// switch expression returns text which is printed by WriteLine
Console.WriteLine(i switch {
-1 => "foo",
-2 => "ignore",
_ => "???"
});
}
如何在 C# 的 switch 表达式中创建一个空的 default case?
我说的是 this 语言功能。
这是我正在尝试的:
using System;
public class Program
{
public static void Main()
{
int i = -2;
var ignore = i switch {
-1 => Console.WriteLine("foo"),
-2 => Console.WriteLine("bar"),
_ => ,
};
}
}
此外,我试过没有逗号:
using System;
public class Program
{
public static void Main()
{
int i = -2;
var ignore = i switch {
-1 => Console.WriteLine("foo"),
-2 => Console.WriteLine("bar"),
_ =>
};
}
}
还是不想编译。所以,我试着放一个空函数:
using System;
public class Program
{
public static void Main()
{
int i = -2;
var ignore = i switch {
-1 => Console.WriteLine("foo"),
-2 => Console.WriteLine("bar"),
_ => {}
};
}
}
还是不行。
与所有表达式一样,开关 表达式 必须能够计算出一个值。
为了您的目的,switch 语句 是正确的构造:
int i = -2;
switch (i)
{
case -1:
Console.WriteLine("foo");
break;
case -2:
Console.WriteLine("bar");
break;
}
您正在研究 表达式 switch
确切的表达式。所有表达式必须return一个值;而 Console.WriteLine
是类型 void
returns nothing.
到fiddle用switch
表达式你可以试试
public static void Main() {
int i = -2;
// switch expression: given i (int) it returns text (string)
var text = i switch {
-1 => "foo",
-2 => "ignore",
_ => "???" // or default, string.Empty etc.
};
Console.WriteLine(text);
}
或将表达式放入WriteLine
:
public static void Main() {
int i = -2;
// switch expression returns text which is printed by WriteLine
Console.WriteLine(i switch {
-1 => "foo",
-2 => "ignore",
_ => "???"
});
}