c#中无法将"int "类型隐式转换为"string"

usingSystem;usingSystem.Collections.Generic;usingSystem.Linq;usingSystem.Text;namespa... using System;
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"这是怎么回事?
谢谢!
展开
 我来答
定复2d
推荐于2016-11-15 · TA获得超过3196个赞
知道大有可为答主
回答量:2052
采纳率:0%
帮助的人:1917万
展开全部

确实是那样,你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(); 

}

嘎好Bf
2009-03-09 · 超过49用户采纳过TA的回答
知道小有建树答主
回答量:125
采纳率:0%
帮助的人:130万
展开全部
string myName
switch的时候当然也应该用string

case 1:
改成
case "1":
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
她是我的小太阳
高粉答主

2015-11-04 · 醉心答题,欢迎关注
知道顶级答主
回答量:5.1万
采纳率:83%
帮助的人:8682万
展开全部
完整代码如下:using System;
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);
}
}
}
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
leo_fei5210
2009-03-09 · TA获得超过306个赞
知道小有建树答主
回答量:455
采纳率:0%
帮助的人:234万
展开全部
.toString()
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 1条折叠回答
收起 更多回答(2)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式