小编Rao*_*ron的帖子

如何获得IEnumerable的基类型

可能重复:
从IEnumerable <T>获取类型T.

我有一个属性类型 IEnumerable

public IEnumerable PossibleValues { get; set; }

如何发现它实例化的基本类型?

例如,如果它是这样创建的:

PossibleValues = new int?[] { 1, 2 }
Run Code Online (Sandbox Code Playgroud)

我想知道那个类型是'int'.

c# ienumerable

8
推荐指数
2
解决办法
7013
查看次数

default(int?)vs(int?)null之间的区别

使用default(int?)(int?)null分配变量有什么区别吗?

是一回事吗?

或者存在一些利弊,以各种方式使用?

c#

5
推荐指数
1
解决办法
3763
查看次数

使用Emit从int调用ToString时,操作可能会破坏运行时错误

这段代码有效

var toString = typeof(string).GetMethod("ToString", new Type[] { });

var dm = new DynamicMethod("MyToString", typeof(string), new Type[] { typeof(string) });

var il = dm.GetILGenerator();

il.Emit(OpCodes.Ldarg_0);
il.Emit(OpCodes.Callvirt, toString);
il.Emit(OpCodes.Ret);

Delegate d = dm.CreateDelegate(typeof(Func<string, string>));

var r = d.DynamicInvoke("10");
Run Code Online (Sandbox Code Playgroud)

此代码抛出异常(System.Security.VerificationException:Operation可能会破坏运行时的稳定性.)

var toString = typeof(int).GetMethod("ToString", new Type[] { });

var dm = new DynamicMethod("MyToString", typeof(string), new Type[] { typeof(int) });

var il = dm.GetILGenerator();

il.Emit(OpCodes.Ldarg_0);
il.Emit(OpCodes.Callvirt, toString);
il.Emit(OpCodes.Ret);

Delegate d = dm.CreateDelegate(typeof(Func<int, string>));

var r = d.DynamicInvoke(10);
Run Code Online (Sandbox Code Playgroud)

为什么?

c# reflection reflection.emit

0
推荐指数
1
解决办法
510
查看次数

标签 统计

c# ×3

ienumerable ×1

reflection ×1

reflection.emit ×1