cs
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using System;
using System.Collections.Generic;
public static class EnumHelper
{
public static List<string> AskEnumNames<T>() where T : Enum
{
Type enumType = typeof(T);
List<string> enumNames = new List<string>();
foreach (string name in Enum.GetNames(enumType))
{
enumNames.Add(name);
}
return enumNames;
}
}
// 使用示例
public enum Colors
{
Red,
Green,
Blue
}
class Program
{
static void Main(string[] args)
{
List<string> enumNames = EnumHelper.AskEnumNames<Colors>();
foreach (string name in enumNames)
{
Console.WriteLine(name);
}
}
}
输出结果如下:
用以上方法即可正常获取某个枚举的所有名称。
下面附件一个C#的反射的典型例子:
cs
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using System.Reflection;
namespace ReflectionExample
{
class Program
{
static void Main(string[] args)
{
// 通过反射创建类型的实例
Type myType = typeof(MyClass);
object myInstance = Activator.CreateInstance(myType, new object[] { "Hello" });
// 获取并调用类型的方法
MethodInfo myMethod = myType.GetMethod("MyMethod");
myMethod.Invoke(myInstance, new object[] { "World" });
}
}
class MyClass
{
public MyClass(string message)
{
Console.WriteLine(message);
}
public void MyMethod(string message)
{
Console.WriteLine(message);
}
}
}
运行结果:
这个例子,利用反射机制构造了对象,并且调用了成员函数。