private const BindingFlags FindBinding = BindingFlags.Instance | BindingFlags.NonPublic;//这是干吗用的?
private static Hashtable tmpHashtable = new Hashtable();
private static Form tmpForm;
public static MenuItem GetMenuItemByName(Form FormIstance, string MenuItemName)
{
FieldInfo MenuItemFieldInfo;
MenuItemFieldInfo = FormIstance.GetType().GetField("_" + MenuItemName, FindBinding);//这是调用吧!
if (MenuItemFieldInfo == null)
{
return null;
}
else
{
return ((MenuItem) (MenuItemFieldInfo.GetValue(FormIstance)));
}
}哪位帮忙解释下,注释的地方!!
private static Hashtable tmpHashtable = new Hashtable();
private static Form tmpForm;
public static MenuItem GetMenuItemByName(Form FormIstance, string MenuItemName)
{
FieldInfo MenuItemFieldInfo;
MenuItemFieldInfo = FormIstance.GetType().GetField("_" + MenuItemName, FindBinding);//这是调用吧!
if (MenuItemFieldInfo == null)
{
return null;
}
else
{
return ((MenuItem) (MenuItemFieldInfo.GetValue(FormIstance)));
}
}哪位帮忙解释下,注释的地方!!
解决方案 »
- 有关修改主键的update语句的一点困惑和指正
- 关于使用Microsoft.Office.Interop.Excel.dll的效率问题
- c#如何对access进行增删改查
- 乱码问题,请高手指点
- 将下面的语义用C表达式的形式描述。
- 算问题:将N个大小不等的矩形不重叠地拼在一个指定宽度不定长度的大矩形里,求使占用大矩形区域最小的拼法。
- 如何操作另一个窗体中的控件呢?
- web验证控件能不能用于datagrid中的模板列啊?
- C#安装部署中的几个问题
- C#导出excel时, 怎么在原有导出的基础上,继续添加数据源到同一个sheet中
- 我如何通过 字符串来取得相应的参数值啊?(我用的是C# )
- 一美资外包公司面试,不会做,干脆把题拿回来了
A: BindingFlags 指定控制绑定和由反射执行的成员和类型搜索方法的标志。 这里制定搜索非公有的实例成员。Q: MenuItemFieldInfo = FormIstance.GetType().GetField("_" + MenuItemName, FindBinding);
A: 这里是在获取FormIstance中那个名字叫做("_" + MenuItemName)的成员变量,并不是调用方法啊
第二个注释值得是取出本队象中一个名字叫做 MenuItemName这个变量值 的实例 。但请注意,它只是通过fieldinfo取出了该种类型(务必注意是类型)中的一个实例.具体确定的某个对象的实例变量的值,还要用MenuItemFieldInfo.getvalue()去取
而getvalue方法的一个参数就是具体的一个对象,比如FormIstance
第二个注释指的是取出本对象中一个名字叫做 MenuItemName 的实例变量 。但请注意,它只是通过fieldinfo取出了该种类型(务必注意是类型)中的一个实例变量.具体确定的某个对象的实例变量的值,还要用MenuItemFieldInfo.getvalue()去取
而getvalue方法的一个参数就是具体的一个对象,比如FormIstance这里的 MenuItemName 和 FormIstance都是方法传入的