【发布时间】:2019-05-06 01:53:24
【问题描述】:
我正在努力学习,(我是编码新手)
这是我写的
static void Main(string[] args)
{
string username = "James";
string[] Userclass = new string[3] { "Mage", "Warrior", "Assasin" };
Console.WriteLine("What class will you be? You can choose from Mage, Warrior, Or Assasin: ");
if (Userclass.Contains("Mage"))
{
String Message = "You are a strong Willed Mage " + username;
Console.WriteLine(Message);
}
if (Userclass.Contains("Warrior"))
{
String Message = "Your are a valiant Warrior " + username;
Console.WriteLine(Message);
}
if (Userclass.Contains("Assasin"))
{
String Message = "You are a vigilant Assasin " + username;
Console.WriteLine(Message);
}
Console.ReadLine();
}
但是,如果我定义:
string Userclass = Console.Readline();
我得到它的错误
无法将字符串[] 转换为字符串
感谢您的帮助!
【问题讨论】:
-
Console.ReadLine返回单个字符串。您已将变量Userclass定义为字符串数组 ([])。赋值运算符右侧的事物类型(=)需要匹配(或兼容)赋值运算符左侧的变量类型。 -
您应该清楚区分两件事:用户选择的类和用户拥有的选项。第一个是单个字符串。第二个是你的字符串数组。
-
考虑到你正在学习编码,我也会给你这些建议。使用“string”而不是“String”,大写的用法是指方法和类,而您打算指的是一种类型。此外,在命名对象时,使用小写(例如“userclass”而不是“Userclass”),没有真正的理由这样做,除非它遵循一般命名约定。 :)
-
@DennisVanhout
stringis an alias forString...它们在功能上是相同的。有些人实际上建议使用String来实现跨语言兼容性。 -
@KennethK。根据该逻辑,您还应该/可以使用 Boolean 和 Int32 而不是 bool 和 int。
标签: c# string conditional-statements