C# 无法隐式转换类型';字符串';至';int';其中输入可以是数字或字母数字。
我试图制作一个已经设置了部分值的屏蔽文本框,然后用户需要再输入4位数字,然后允许它发送出去。我很难解释,但以下是它目前的样子,以供参考:C# 无法隐式转换类型';字符串';至';int';其中输入可以是数字或字母数字。,c#,maskedtextbox,C#,Maskedtextbox,我试图制作一个已经设置了部分值的屏蔽文本框,然后用户需要再输入4位数字,然后允许它发送出去。我很难解释,但以下是它目前的样子,以供参考: private void maskedTextBox1_KeyDown(object sender, KeyEventArgs e) { if(e.KeyCode == Keys.Enter && maskedTextBox1.Text.Length == ("007744D4 0131").Length + 4)
private void maskedTextBox1_KeyDown(object sender, KeyEventArgs e)
{
if(e.KeyCode == Keys.Enter && maskedTextBox1.Text.Length == ("007744D4 0131").Length + 4)
{
NCInterface.ConstCodeAdd(codes[maskedTextBox1.Text], true);
}
}
现在,它有NCInterface的最后一部分是它被发送到PS3控制台的地方,我需要知道如何确保
maskedTextBox1.Text
正确转换。maskedTextBox需要能够接受数字和字母。我没有什么可与之相比的。。但这正是它的来源。但它只是说它不能将类型字符串转换为int。因此,如果有人能帮助我,我将不胜感激。基于您的错误,您可以这样做:
NCInterface.ConstCodeAdd(int.Parse(codes[maskedTextBox1.Text]), true);
您需要做的是使用
TryParse
string testString = maskedTextBox1.Text;
int numberTest;
if(int.TryParse(testString, out numberTest)
{
NCInterface.ConstCodeAdd(numberTest, true);
}
你是真正的C#开发者吗?很久没有了。把Int32.Parse放进去的问题是什么(我完全应该在OP中提到这一点。maskedtextbox1的条目可以包含数字和字母。也许你应该提供
NCInterface.ConstCodeAdd
的签名,以及它应该如何处理此代码。你想发送的代码是否只有最后4位数字?在这种情况下,请使用IndexOf
查找。)空格并从找到的索引+1到结尾创建一个子字符串。然后可以将该子字符串解析为int
。不要忘记它周围的try catch
。我想知道007744D4 0131
是否应该是一个可能的值(请参见问题)当然,在这种情况下,int.Parse
不会有帮助。但是,即使只输入有效的数字,try-catch
也不会有什么坏处。;)您刚刚为许多PS3用户节省了一些心痛:)