目标:
将一个枚举值赋给animalType对象。
Categories.CategoryType animalType = (CategoryType)Enum.Parse(的GetType(CategoryType), pCategory);
问题: 源代码无法正常工作,它给出了两条错误消息:
“Assignment1.Categories.CategoryType”是'type',但用作a '变量'“
“方法'GetType'没有重载需要1个参数”
namespace Assignment1
{
class AnimalManager
{
private List<IAnimal> _myAnimal = new List<IAnimal>();
public void CreateNewAnimal(string pName, string pHousing, string pAge, string pCategory, string pAnimal, string pEater, string pGender)
{
Categories.CategoryType animalType = (CategoryType)Enum.Parse(GetType(CategoryType), pCategory);
}
}
}
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
namespace Assignment1.Categories
{
/// <summary>
///
/// </summary>
public enum CategoryType
{
Mammal,
Bird,
Marine,
Reptile,
Insect
}
}
答案 0 :(得分:3)
试试这个:
Categories.CategoryType animalType =
(CategoryType)Enum.Parse(typeof(CategoryType), pCategory);
答案 1 :(得分:0)
尝试:
CategoryType animalType =
(CategoryType)Enum.Parse(typeof(CategoryType), pCategory);
如果您需要静态知道的某种类型(在编译时),请使用typeof
运算符。 GetType
方法适用于多态性情况下的运行时类型信息(在这种情况下,您可以执行pCategory.GetType
之类的操作)。最后请注意Enum.Parse
可以抛出 - 所以你可能想看看Enum.TryParse。