error CS1061: 'IEnumerable<Attribute>' does not contain a definition for 'Length' and no extension method 'Length' accepting a first argument of type 'IEnumerable<Attribute>' could be found (are you missing a using directive or an assembly reference?)
当我尝试使用.Net而不是IL2CPP进行编译时,使用Unity 2018出现此错误 这是我收到错误的行:
if (methods[i].GetCustomAttributes(typeof(CompilerGeneratedAttribute), true).Length != 0)
{
continue;
}
然后,通过另一种方法:
var ret = (Delegate.CreateDelegate(typeof(V), target, method) as V);
此外,在此方法中,我使用methodinfo代替Delegate。但是请问是否没有使用3个值的方法。
还添加了“ using system.Linq”
最诚挚的问候
答案 0 :(得分:3)
实际上,您要测试IEnumerable<T>
中是否有任何个项目:
if (methods[i].GetCustomAttributes(typeof(CompilerGeneratedAttribute), true).Any())
{
continue;
}
如果您坚持使用Length != 0
方法,则正确的语法是
if (methods[i].GetCustomAttributes(typeof(CompilerGeneratedAttribute), true).Count() > 0)
{
continue;
}
答案 1 :(得分:-1)
好吧,现在可以正常工作
if (methods[i].GetCustomAttributes(typeof(CompilerGeneratedAttribute), true).Count() > 0)
现在,另一个错误:
var ret = (Delegate.CreateDelegate(typeof(V), target, method) as V);
我尝试使用MethodInfo,但是没有用。 'Delegate'不包含'CreateDelegate'的定义