如何解决如何在 C# 中的 switch 表达式中创建一个空的默认情况?
如何在 C# 中的 switch 表达式中创建一个空的默认情况?
这是我正在尝试的:
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"),_ =>
};
}
}
using System;
public class Program
{
public static void Main()
{
int i = -2;
var ignore = i switch {
-1 => Console.WriteLine("foo"),_ => {}
};
}
}
它仍然不起作用。
解决方法
开关 表达式 必须能够计算出一个值,就像所有表达式一样。
就您的目的而言,switch 语句是正确的构造:
draw_next_part
,
您正在研究表达式 switch
准确的表达式。所有表达式都必须返回一个值;而 Console.WriteLine
的类型为 void
返回没有。
要摆弄 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",_ => "???"
});
}
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。