【发布时间】:2010-11-16 20:29:51
【问题描述】:
当您将 this List 作为方法的参数时,这意味着什么?
public static void KillZombies(this List<Zombie> ZombiesToKill, int NumberOfBullets)
{
...
}
【问题讨论】:
-
找不到,但我很确定这个问题是重复的...
当您将 this List 作为方法的参数时,这意味着什么?
public static void KillZombies(this List<Zombie> ZombiesToKill, int NumberOfBullets)
{
...
}
【问题讨论】:
这意味着该方法是Extension Method:
调用该方法的代码可能看起来有点混乱:
var zombies = new List<Zombie>();
zombies.KillZombies(15);
实际上,这是一种语法糖,相当于:
public static void KillZombies(List<Zombie> zombiesToKill,
int numberOfBullets)
{
// Code here
}
调用代码如下:
var zombies = new List<Zombie>();
KillZombies(zombies, 15);
【讨论】:
这是一个extension method。
在这种情况下,扩展List<Zombie>。你可以这样称呼它:
listOfZombies.KillZombies(numberOfBullets);
其中listOfZombies 的类型为List<Zombie>,numberOfBullets 为整数。
【讨论】: