我是 C# 的新手,这段代码我试图使用 double 作为数据类型
using System;
namespace FirstProject
{
class Program
{
static void Main(string[] args)
{
Console.Title = "My First Project";
double num1, num2, div;
Console.WriteLine("Enter The First Number :");
num1 = double.Parse(Console.ReadLine());
Console.WriteLine("Enter The Second Number :");
num2 = double.Parse(Console.ReadLine());
switch (num2)
{
case 0:
Console.WriteLine("Alert Divide By Zero");
break;
default:
div = num1 / num2;
Console.WriteLine("The Result Of Division Is " + div);
break;
}
Console.ReadKey();
}
}
}
Run Code Online (Sandbox Code Playgroud)
该变量num2有一个警告Error 1 A switch expression or case label must be a bool, char, string, integral, enum, or corresponding nullable type C:\Users\Future\documents\visual studio 2012\Projects\FirstProject\FirstProject\Program.cs 19 21 FirstProject ...如何在 switch 表达式中使用 double ?
没有具体细节。该代码仅使用用户输入的两个数字,然后检查第二个数字。如果第二个数字为零,则显示警报,否则显示除法结果。(这是为那些要求更多细节的人准备的)当使用 int 代替 double 时,没有出现错误,但是当使用 double 将除法结果作为 double 获取时,我得到了之前显示的错误。
对于 7.0 之前的 C# 语言,开关仅限于 bool、char、string、integral、enum 或相应的可空类型。C# 语言版本从 7.0 switch 语句开始支持任何非空表达式。来源:https : //docs.microsoft.com/en-us/dotnet/csharp/language-reference/keywords/switch#the-match-expression
如果你真的想在 switch 中使用 double,请在项目属性中检查你使用的框架版本和语言版本。C# 7.0 至少需要 VS 2017 和 .NET 4.7 作为目标框架。
我已经在 .NET Core 3.1 上尝试过,它可以用于双打:
double num = 1.0;
switch (num)
{
case 0.0:
Console.WriteLine("1");
break;
default:
Console.WriteLine("2");
break;
}
Run Code Online (Sandbox Code Playgroud)
但是,正如其他人已经指出的那样,这确实是使用 switch 的奇怪方式。