【问题标题】:this List<string> ListName as a parameter?这个 List<string> ListName 作为参数?
【发布时间】:2010-11-16 20:29:51
【问题描述】:

当您将 this List 作为方法的参数时,这意味着什么?

public static void KillZombies(this List<Zombie> ZombiesToKill, int NumberOfBullets)
{
    ...
}

【问题讨论】:

  • 找不到,但我很确定这个问题是重复的...

标签: c# list this


【解决方案1】:

这意味着该方法是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);

【讨论】:

  • 看起来在调用 KillZombies 时,只传递了 NumberOfBullets。如果 ZombiesToKill 不作为参数发送,它通常在哪里定义?对于缺少代码,我深表歉意,如果在没有任何上下文的情况下无法回答,我理解。
  • @Soo - 我刚刚更新了我的答案,希望能解释你为什么会看到自己。
【解决方案2】:

这是一个extension method

在这种情况下,扩展List&lt;Zombie&gt;。你可以这样称呼它:

listOfZombies.KillZombies(numberOfBullets);

其中listOfZombies 的类型为List&lt;Zombie&gt;numberOfBullets 为整数。

【讨论】:

  • ...你超越了我,但我正在卷土重来! :-P
  • @Justin Niessner - 呵呵……比赛开始了:)
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2019-04-11
  • 1970-01-01
  • 2013-05-08
  • 1970-01-01
  • 2019-08-05
  • 2013-12-04
  • 2011-04-28
相关资源
最近更新 更多