如何修复';无法隐式转换类型';C#中的错误?
我正在进行flare on挑战(Memecat Battlestation),我决定。。好吧,绕过它,演示共享软件一被绕过,但损坏的标志,所以我想我会尝试完整版本,我尝试了完整版本,但我得到了一个错误 这是第一个名为Memecat Battlestation的Flare On挑战,我运行的是64位Windows 7,错误在VictoryForm.cs中如何修复';无法隐式转换类型';C#中的错误?,c#,C#,我正在进行flare on挑战(Memecat Battlestation),我决定。。好吧,绕过它,演示共享软件一被绕过,但损坏的标志,所以我想我会尝试完整版本,我尝试了完整版本,但我得到了一个错误 这是第一个名为Memecat Battlestation的Flare On挑战,我运行的是64位Windows 7,错误在VictoryForm.cs中 private static IEnumerable<byte> AssignFelineDesignation(byte[
private static IEnumerable<byte> AssignFelineDesignation(byte[] cat, IEnumerable<byte> data)
{
byte[] s = BattleCatManagerInstance.InvertCosmicConstants(cat);
int i = 0;
int j = 0;
return data.Select(delegate (byte b)
{
i = (i + 1 & 255);
j = (j + (int)s[i] & 255);
BattleCatManagerInstance.CatFact(s, i, j);
return b ^ s[(int)(s[i] + s[j] & byte.MaxValue)];
});
}
私有静态IEnumerable AssignFellineDesignation(字节[]cat,IEnumerable数据)
{
字节[]s=BattleCatManagerInstance.InvertCosmicConstants(cat);
int i=0;
int j=0;
返回数据。选择(委托(字节b)
{
i=(i+1和255);
j=(j+(int)s[i]&255);
战斗状态。战斗状态(s,i,j);
返回b^s[(int)(s[i]+s[j]&byte.MaxValue)];
});
}
我曾期望它只构建而没有任何错误,但我得到了以下错误:
'无法隐式转换类型
“System.Collections.Generic.IEnumerable
”到
“System.Collections.Generic.IEnumerable
”。明确的
转换已存在(是否缺少演员阵容?)
这一行:
return b ^ s[(int)(s[i] + s[j] & byte.MaxValue)]
。。。返回一个int
,因为这是您正在使用的^
运算符的类型。您可以将结果强制转换为字节
:
return (byte) (b ^ s[(int)(s[i] + s[j] & byte.MaxValue)]);
我个人会使用lambda表达式,而不是匿名方法:
return data.Select(b =>
{
i = (i + 1 & 255);
j = (j + (int)s[i] & 255);
BattleCatManagerInstance.CatFact(s, i, j);
return (byte) (b ^ s[(int)(s[i] + s[j] & byte.MaxValue)]);
});
你是说“语句返回一个int”对吗?还是我遗漏了什么?@ilkerkaran:Doh!这绝对是我的意思。谢谢你发现它:)6分钟结束后,我会将此标记为最佳答案,这实际上对我有帮助。谢谢,我只需要找到一种方法来修复'Resource identifier'memecatbalstation.VictoryForm.resources'现在已经在这个程序集中使用了'。