我是一名编程新手,我有一个有效的代码,我在nuget上更新了.NET软件包(我正在使用UWP),然后,这部分代码停止了工作。
[...]
if (eh != null)
{
Delegate d = (Delegate)(object)eh;
/// This one >
IEnumerable<Attribute> attributes = d.GetMethodInfo().DeclaringType.GetTypeInfo().GetCustomAttributes(typeof(CompilerGeneratedAttribute), false);
///
int count = 0;
using (IEnumerator<Attribute> enumerator = attributes.GetEnumerator())
[...]
我收到此错误:
CS0266无法将类型'object []'隐式转换为'System.Collections.Generic.IEnumerable'。存在显式转换(您是否缺少演员表?)
答案 0 :(得分:1)
简而言之,您正在尝试将对象数组object[]
推入IEnumerable<Attribute>
中,这不会发生。
只需使用Enumerable.Cast
将IEnumerable的元素转换为指定的类型。
var attributes = d...
.GetCustomAttributes(typeof(CompilerGeneratedAttribute), false)
.Cast<Attribute>()