C# 从propertyType提取枚举类型
我有下面的场景C# 从propertyType提取枚举类型,c#,generics,enums,C#,Generics,Enums,我有下面的场景 public class TestData { public TestEnum EnumTestData{get;set;} } public Enum TestEnum { Test1,Test2,Test3 } 我有另一个类,它遍历所有属性的TestData类。根据属性类型,它将为其生成随机数据。现在,当我的propertyType是Enum类型时,我如何知道它是哪种类型的Enum,以及如何获取Test1、Test2或Test3作为我的输出?您只需.
public class TestData
{
public TestEnum EnumTestData{get;set;}
}
public Enum TestEnum
{
Test1,Test2,Test3
}
我有另一个类,它遍历所有属性的TestData类。根据属性类型,它将为其生成随机数据。现在,当我的propertyType是Enum类型时,我如何知道它是哪种类型的Enum,以及如何获取Test1、Test2或Test3作为我的输出?您只需
.ToString()
EnumTestData属性,如下所示:
var test = new TestData();
test.EnumTestData = TestEnum.Test1;
var dummy = test.EnumTestData.ToString();
注意:
dummy
将是的“Test1”
您可以只.ToString()
使用EnumTestData
属性,如下所示:
var test = new TestData();
test.EnumTestData = TestEnum.Test1;
var dummy = test.EnumTestData.ToString();
注意:
dummy
将是“Test1”
不完全确定您要问什么,但这是比较和获取枚举字符串值的方式:
var td = new TestData();
// compare
if (td.EnumTestData == TestEnum.Test1)
{
// Will output "Test1"
Console.WriteLine(td.EnumTestData.ToString());
}
另外,我确信这只是一个输入错误,但它是enum
而不是enum
:
public enum TestEnum
{
Test1,Test2,Test3
}
不完全确定您要问什么,但以下是比较和获取枚举字符串值的方法:
var td = new TestData();
// compare
if (td.EnumTestData == TestEnum.Test1)
{
// Will output "Test1"
Console.WriteLine(td.EnumTestData.ToString());
}
另外,我确信这只是一个输入错误,但它是enum
而不是enum
:
public enum TestEnum
{
Test1,Test2,Test3
}
您可以使用以下方法获取所有属性的列表: 然后通过检查和属性来检查它是否为
Enum
类型:
foreach(var prop in properties)
{
if (prop.PropertyType.IsEnum)
{
...
}
}
最后使用以下方法获得一个随机值:
您可以使用以下方法获取所有属性的列表: 然后通过检查和属性来检查它是否为
Enum
类型:
foreach(var prop in properties)
{
if (prop.PropertyType.IsEnum)
{
...
}
}
最后使用以下方法获得一个随机值: