using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using System.Reflection;
namespace B002_使用反射调用方法_MethodInfo.Invoke方法_
{
class Myclass
{
public int a;
public int b;
public Myclass(int x, int y)
{
a = x;
b = y;
}
public int Sum()
{
return a + b;
}
}
class Program
{
static void Main(string[] args)
{
//Ordinal 使用序号排序规则比较字符串。 比较严格和准确的,并且在性能上也很好
Myclass mc = new Myclass(5, 10);//初始化值
int mysum = mc.Sum();
//Console.WriteLine("sum is " + mysum);
Type ty = typeof(Myclass);
int val;
MethodInfo[] m = ty.GetMethods();
foreach (MethodInfo m1 in m)
{
if (m1.Name.Equals("Sum", StringComparison.Ordinal))
{
val = (int)m1.Invoke(mc, null);//反射:方法调用类。借助;
Console.WriteLine("sum is " + val);
}
}
Console.ReadLine();
}
}
}
//StringComparison字符串比较枚举类型
//CurrentCulture 使用区域敏感排序规则和当前区域比较字符串。
//CurrentCultureIgnoreCase 使用区域敏感排序规则、当前区域来比较字符串,同时忽略被比较字符串的大小写。
//InvariantCulture 使用区域敏感排序规则和固定区域比较字符串。
//InvariantCultureIgnoreCase 使用区域敏感排序规则、固定区域来比较字符串,同时忽略被比较字符串的大小写。
//Ordinal 使用序号排序规则比较字符串。 比较严格和准确的,并且在性能上也很好
//OrdinalIgnoreCase 使用序号排序规则并忽略被比较字符串的大小写,对字符串进行比较。