反射调用静态方法
2009-10-12 17:49
323 查看
using System;
using System.Collections.Generic;
using System.Text;
using System.Reflection;
namespace ConApp
{
class Program
{
static void Main(string[] args)
{
// 使用TryParse,出现异常时,赋值为最小值
string str = "4x";
DateTime dt = DateTime.MaxValue;
DateTime.TryParse(str, out dt);
// 使用TryParse,出现异常时,赋值为最小值
int i = 2;
int.TryParse(str, out i);
// 调用静态方法
Type t = typeof(Sys);
object obj = t.InvokeMember("GetName",
BindingFlags.InvokeMethod | BindingFlags.Static | BindingFlags.Public, null, null, new object[] { 2 });
// 调用一般方法
Type type = typeof(Sys);
Object objT = type.InvokeMember(null, BindingFlags.DeclaredOnly | BindingFlags.Public | BindingFlags.NonPublic | BindingFlags.Instance | BindingFlags.CreateInstance, null, null, args);
int ii = (int)type.InvokeMember("GetInt", BindingFlags.InvokeMethod | BindingFlags.Public | BindingFlags.Instance, null, objT, new object[] { 1 });
Console.ReadKey();
}
}
public class Sys
{
public static string GetName(int id)
{
return string.Format("Your name is : test_{0}", id + 1);
}
public int GetInt(int value)
{
return value + 100;
}
}
}
using System.Collections.Generic;
using System.Text;
using System.Reflection;
namespace ConApp
{
class Program
{
static void Main(string[] args)
{
// 使用TryParse,出现异常时,赋值为最小值
string str = "4x";
DateTime dt = DateTime.MaxValue;
DateTime.TryParse(str, out dt);
// 使用TryParse,出现异常时,赋值为最小值
int i = 2;
int.TryParse(str, out i);
// 调用静态方法
Type t = typeof(Sys);
object obj = t.InvokeMember("GetName",
BindingFlags.InvokeMethod | BindingFlags.Static | BindingFlags.Public, null, null, new object[] { 2 });
// 调用一般方法
Type type = typeof(Sys);
Object objT = type.InvokeMember(null, BindingFlags.DeclaredOnly | BindingFlags.Public | BindingFlags.NonPublic | BindingFlags.Instance | BindingFlags.CreateInstance, null, null, args);
int ii = (int)type.InvokeMember("GetInt", BindingFlags.InvokeMethod | BindingFlags.Public | BindingFlags.Instance, null, objT, new object[] { 1 });
Console.ReadKey();
}
}
public class Sys
{
public static string GetName(int id)
{
return string.Format("Your name is : test_{0}", id + 1);
}
public int GetInt(int value)
{
return value + 100;
}
}
}
相关文章推荐
- java 程序加载过程---3--类中申明同时申明类的静态对象 创建类的实例 访问类的静态变量 调用类的静态方法 使用反射方法 初始化类的子类对象 直接使用java.exe 调用某个类
- Java 反射调用静态方法
- Java中使用反射调用静态方法
- 静态方法,实例方法,反射调用性能测试
- Java 反射调用静态方法的简单实例
- 用反射调用实例方法和静态方法
- 测试反射调用私有方法/私有静态方法
- C# 反射调用私有 静态 方法
- JAVA 反射 动态调用不同类的静态方法
- java反射调用静态方法
- Java 反射,调用类的静态方法
- Java反射调用静态方法
- Android JNI反射调用Java构造方法、成员方法和静态方法
- java中静态方法为什么不能调用非静态方法或者变量
- Java静态方法中调用内部类
- C#中反射调用带out参数的方法
- 利用反射实现对象调用方法
- 通过Java反射调用方法
- 静态方法中调用非静态方法
- C++ 静态成员函数调用非静态成员函数方法