c#中无法将"int "类型隐式转换为"string"
using System.Collections.Generic;
using System.Linq;
using System.Text;
namespace SynthesisApplication
{
class Program
{
bool myBool = false;
static void Main(string[] args)
{
//获取用户输入的姓名
Console.WriteLine("请输入姓名:");
Console.WriteLine("(1)张三(2)李四(3)王五");
string myName = Console.ReadLine().Trim();
//获取用户输入的密码
Console.WriteLine("请输入密码:");
string myPassword = Console.ReadLine().Trim();
do
{
//根据用户的输入,提示不同的信息
switch(myName)
{
//当myName等于1时的处理
case 1:
if(myPassword =="123456")
{
Console.WriteLine("密码正确");
}
else
{
Console.WriteLine("密码错误");
}
break;
/* //当myName等于2时的处理
case 2:
if(myPassword ==" 234567")
{
Console.WriteLine("密码正确");
}
else
{
Console.WriteLine("密码错误");
}
break;
//当myName等于3时的处理
case 3:
if(myPassword ==" 345678")
{
Console.WriteLine("密码正确");
}
else
{
Console.WriteLine("密码错误");
}
break;
//当myName等于其他时的处理*/
default:
Console.WriteLine("查无此人");
break;
}while(!myBool);
//当输入为空时,提示退出信息
Console.WriteLine("没输入有效的姓名,系统将退出……\n按回车键退出程序!");
Console.ReadLine();
}
}
}
编译时说无法将"int "类型隐式转换为"string"这是怎么回事?
谢谢! 展开
确实是那样,你case那不能直接用整型的,因为你switch那用的变量是字符串的
所以case那也要用string
对于你这的,你是不是直接用输入的姓名来判断密码是否正确?
那你也可以这样,
int myName = Int32.Parse(Console.ReadLine());
其他不变,直接输入数字看看
不行,你程序有严重的问题···我直接给你修改了,你自己看看
using System;
using System.Collections.Generic;
using System.Collections;
using System.Linq;
using System.Text;
namespace Temp
{
class Program
{
static void Main(string[] args)
{
bool myBool = false;
do
{
//获取用户输入的姓名
Console.WriteLine("请输入姓名:");
Console.WriteLine("(1)张三(2)李四(3)王五");
int myName = Int32.Parse(Console.ReadLine());
//获取用户输入的密码
Console.WriteLine("请输入密码:");
string myPassword = Console.ReadLine().Trim();
//根据用户的输入,提示不同的信息
switch (myName)
{
//当myName等于1时的处理
case 1:
if (myPassword == "123456")
{
Console.WriteLine("密码正确");
}
else
{
Console.WriteLine("密码错误");
}
break;
//当myName等于2时的处理
case 2:
if (myPassword == " 234567")
{
Console.WriteLine("密码正确");
}
else
{
Console.WriteLine("密码错误");
}
break;
//当myName等于3时的处理
case 3:
if (myPassword == " 345678")
{
Console.WriteLine("密码正确");
}
else
{
Console.WriteLine("密码错误");
}
break;
//当myName等于其他时的处理*/
default:
Console.WriteLine("查无此人");
break;
}
} while (!myBool);
//当输入为空时,提示退出信息
Console.WriteLine("没输入有效的姓名,系统将退出……\n按回车键退出程序!");
Console.ReadLine();
}
}
}
switch的时候当然也应该用string
case 1:
改成
case "1":
using System.Collections.Generic;
using System.Linq;
using System.Text;namespace sd
{
class Program
{
public static void Main()
{
int a;
a = Convert.ToInt32(Console.ReadLine());
Console.WriteLine("{}", a);
}
}
}