【问题标题】:passing this as parameter in static method在静态方法中将此作为参数传递
【发布时间】:2012-02-07 19:18:53
【问题描述】:

我在使用 Visual C# for Windows Phone 中的某些代码时遇到了一些问题 问题不是它不起作用,因为它起作用,但我不明白如何=P 在静态类中,会创建一个静态方法,该方法将自身作为参数:

public static void MethodONe( this Timeline animation )
{
    //this class does not extend the TimeLine class, and is not connected to it in any                   
    //such way.
    animation.MethodTwo( );
}

public static void MethodTwo( this Timeline animation )
{
    someCode( );
}

这个参数传递是如何调用的,它到底是做什么的?

【问题讨论】:

标签: c# this parameter-passing


【解决方案1】:

这是一种所谓的 Timeline 对象的扩展方法。它在不修改类本身的情况下添加了功能。

http://msdn.microsoft.com/en-us/library/bb383977.aspx

在您的情况下,动画参数是 Timeline 对象(正在调用该函数):

var timeLine = new Timeline();
timeLine.MethodTwo();

所以timeLine对象将作为动画参数传递给函数。 维基百科上有一篇不错的文章,其中详细解释了它:

http://en.wikipedia.org/wiki/Extension_method

【讨论】:

  • "...参数这是 Timeline 对象..." - 这并不正确。 this 在这种情况下是一个修饰符,而不是一个参数。参数是animation :-)
猜你喜欢
  • 2012-07-24
  • 2019-09-21
  • 2016-07-14
  • 2021-04-23
  • 2013-05-03
  • 1970-01-01
  • 2023-03-08
  • 2010-11-16
相关资源
最近更新 更多