-
反射
public class Love
![](/Images/OutliningIndicators/ExpandedBlockStart.gif)
{
public int field1;
private string _name;
![](/Images/OutliningIndicators/InBlock.gif)
public Love()
![](/Images/OutliningIndicators/ExpandedSubBlockStart.gif)
{
![](/Images/OutliningIndicators/InBlock.gif)
}
![](/Images/OutliningIndicators/InBlock.gif)
public string Name
![](/Images/OutliningIndicators/ExpandedSubBlockStart.gif)
{
get
![](/Images/OutliningIndicators/ExpandedSubBlockStart.gif)
{
return _name;
}
![](/Images/OutliningIndicators/InBlock.gif)
set
![](/Images/OutliningIndicators/ExpandedSubBlockStart.gif)
{
_name = value;
}
}
![](/Images/OutliningIndicators/InBlock.gif)
![](/Images/OutliningIndicators/InBlock.gif)
public int GetInt(int a)
![](/Images/OutliningIndicators/ExpandedSubBlockStart.gif)
{
return a;
}
![](/Images/OutliningIndicators/InBlock.gif)
![](/Images/OutliningIndicators/InBlock.gif)
![](/Images/OutliningIndicators/InBlock.gif)
public void Display(string str)
![](/Images/OutliningIndicators/ExpandedSubBlockStart.gif)
{
System.Windows.Forms.MessageBox.Show(str);
}
![](/Images/OutliningIndicators/InBlock.gif)
}
测试代码:
private void test()
![](/Images/OutliningIndicators/ExpandedBlockStart.gif)
{
Love love = new Love();
Type type = love.GetType();
![](/Images/OutliningIndicators/InBlock.gif)
![](/Images/OutliningIndicators/ExpandedSubBlockStart.gif)
type.InvokeMember("Display", BindingFlags.InvokeMethod | BindingFlags.Public | BindingFlags.Instance, null, love, new object[]
{ "aldfjdlf" });
![](/Images/OutliningIndicators/InBlock.gif)
//调用有返回值的方法
![](/Images/OutliningIndicators/ExpandedSubBlockStart.gif)
int i = (int)type.InvokeMember("GetInt", BindingFlags.InvokeMethod | BindingFlags.Public | BindingFlags.Instance, null, love, new object[]
{ 1 });
MessageBox.Show(i.ToString());
![](/Images/OutliningIndicators/InBlock.gif)
//设置属性值
![](/Images/OutliningIndicators/ExpandedSubBlockStart.gif)
type.InvokeMember("Name", BindingFlags.SetProperty, null, love, new string[]
{ "abc" });
![](/Images/OutliningIndicators/InBlock.gif)
//获取属性值
string str = (string)type.InvokeMember("Name", BindingFlags.GetProperty, null, love, null);
MessageBox.Show(str);
![](/Images/OutliningIndicators/InBlock.gif)
![](/Images/OutliningIndicators/InBlock.gif)
//设置字段值
![](/Images/OutliningIndicators/ExpandedSubBlockStart.gif)
type.InvokeMember("field1", BindingFlags.SetField, null, love, new object[]
{ 444 });
![](/Images/OutliningIndicators/InBlock.gif)
//获取公有字段值
int f = (int)type.InvokeMember("field1", BindingFlags.GetField, null, love, null);
MessageBox.Show(f.ToString());
![](/Images/OutliningIndicators/InBlock.gif)
//获取私有字段值
string name = (string)type.InvokeMember("_name", BindingFlags.GetField | BindingFlags.NonPublic |BindingFlags.Instance, null, love, null);
MessageBox.Show(name);
![](/Images/OutliningIndicators/InBlock.gif)
![](/Images/OutliningIndicators/InBlock.gif)
}
-
相关阅读:
容器镜像服务联手 IDE 插件,实现一键部署、持续集成与交付
阿里巴巴大规模神龙裸金属 Kubernetes 集群运维实践
4 个概念,1 个动作,让应用管理变得更简单
从零开始入门 | Kubernetes 中的服务发现与负载均衡
最佳实践 | 数据库迁云解决方案选型 & 流程全解析
Thumbnail 图片帮助
验证码-WebVcode
访问者(Visitor)模式
享元(Flyweight)模式
中介者(Mediator)模式
-
原文地址:https://www.cnblogs.com/gxh973121/p/454784.html
Copyright © 2020-2023
润新知