以下方法是否做同样的事情?我试图将第一种方法中的语句分解为多个语句,以供我理解。
TextureManager::Instance()->load(pParams->getFileName(), m_textureID, TheGame::Instance()->getRenderer());
还有public static Actions KeysUp(this Actions actions, params string[] keys)
{
keys.ToList().ForEach(k => actions.KeyUp(k));
return actions;
}
函数:
KeysUp
答案 0 :(得分:0)
效率很低,我不知道您的类型。我猜他们是字符,如果我猜错了,可以用其他类型替换它们。
// keys.ToList() means
List<char> temp = new List<char>();
foreach (char k in keys)
{
temp.Add(k);
}
// .ForEach(k => actions.KeyUp(k)) means (in context of your temporary list)
foreach (char k in temp)
{
actions.KeyUp(k);
}
因此,对于键中的每个键,都会调用一次action对象的KeyUp方法。
创建该临时列表的原因是ForEach方法在List上,但不是IEnumerable。要回答我的上一句话无疑会引起您的疑问,请参阅here。
获得完全相同的结果(减去不必要的垃圾收集和延迟)的更有效的方法(CPU /内存,时间)将是
foreach (var k in keys)
{
actions.KeyUp(k);
}
,或者如果您更喜欢一行,则:
foreach (var k in keys) { actions.KeyUp(k); }