C# 无法将类型“string”隐式转换为“System.type”
我正在尝试在控制台应用程序中构建一个联系人管理器程序,使用列表来存储和显示数据。我需要查看一个报告,其中显示可用联系人的摘要,然后提供一个菜单,允许用户与程序交互。我有一个方法来创建一个包含数据和联系人对象的列表,但我不断收到错误,无法在我的createContact方法中将类型“string”隐式转换为“System.type”。我不知道如何解决这个问题 如有任何指导,将不胜感激C# 无法将类型“string”隐式转换为“System.type”,c#,.net,enums,C#,.net,Enums,我正在尝试在控制台应用程序中构建一个联系人管理器程序,使用列表来存储和显示数据。我需要查看一个报告,其中显示可用联系人的摘要,然后提供一个菜单,允许用户与程序交互。我有一个方法来创建一个包含数据和联系人对象的列表,但我不断收到错误,无法在我的createContact方法中将类型“string”隐式转换为“System.type”。我不知道如何解决这个问题 如有任何指导,将不胜感激 public static void createContact() { Con
public static void createContact()
{
Contact c1 = new Contact();
Console.WriteLine("\nGetFirstName");
c1.GetFirstName = Console.ReadLine();
Console.WriteLine("\nGetLastName");
c1.GetLastName = Console.ReadLine();
Console.WriteLine("\nGetEmailAddress");
c1.GetEmailAddress = Console.ReadLine();
Console.WriteLine("\nGetPhoneNumber");
c1.GetPhoneNumber = Console.ReadLine();
Console.WriteLine("\nContactTypes");
c1.ContactTypes = Console.ReadLine();
//Create more contacts...
//Add all contacts here
ContactCollection contactList = new ContactCollection();
contactList.Add(c1);
//Loop through list
foreach (Contact c in contactList)
{
Console.WriteLine(c.GetFirstName);
Console.WriteLine(c.GetLastName);
Console.WriteLine(c.GetEmailAddress);
Console.WriteLine(c.GetPhoneNumber);
// error line
Console.WriteLine(c.ContactTypes);
}
Console.ReadLine();
}
这是我的联络班
Console.ReadLine只返回一个字符串。如果要创建任何对象,例如:ContactTypes,则应使用该字符串创建其实例
ContactTypes应该是枚举而不是类型
公共类型ContactType应为公共ContactType ContactType
enum ContactTypesEnum{Family,Friend,Professional}应为enum ContactTypes{Family,Friend,Professional}
你应该像下面这样做。最后一个参数是ignoreCare,我已将其设置为true
确保联系人类属性GetFirstName、GetLastName等为字符串,
或将inputConsole.ReadLine值转换为所需类型。Console.ReadLine返回字符串。 您需要的是从Readline返回的类型
c1.ContactTypes = Console.ReadLine().GetType();
但这没有任何意义,因为Console.Readline始终是Sytem.String。您可能需要将返回的值字符串转换为您喜欢的对象
var currString = Console.ReadLine().GetType();
object currObject = currString;
if(//Check if numeric for ex.)
{
currObject = Convert.ToInt32(currString);
}
//Do some more validation
//Now getType()
c1.ContactTypes = Console.ReadLine();
另请参见CharithJ和Chandrashekar Jupalli的答案我想您错过了“联系人”课程 或许
public Type ContactTypes
应该是这样的:
public ContactTypesEnum Type
及
像这样:
private ContactTypesEnum _contactTypes;
你的联络班是什么样子的?您正在尝试将Console.ReadLine返回的字符串分配给其所有属性。它们都是字符串吗?您还没有发布有此问题的代码,您必须至少发布Contact类。另外,突出显示错误发生的位置。
public ContactTypesEnum Type
private Type _contactTypes;
private ContactTypesEnum _contactTypes;