C# 什么';s";这";用来做什么?

C# 什么';s";这";用来做什么?,c#,C#,我读了一些c#代码,无法理解函数参数中的“this”关键字?谁能告诉我它是用来干什么的吗?谢谢 public static class ControlExtensions { public static void InvokeIfNeeded(this Control ctl, Action doit) { if (ctl.InvokeRequired) ctl.Invoke(doit); else

我读了一些c#代码,无法理解函数参数中的“this”关键字?谁能告诉我它是用来干什么的吗?谢谢

public static class ControlExtensions
{
    public static void InvokeIfNeeded(this Control ctl,
        Action doit)
    {
        if (ctl.InvokeRequired)
            ctl.Invoke(doit);
        else
            doit();
    }

    public static void InvokeIfNeeded<T>(this Control ctl,
        Action<T> doit, T args)
    {
        if (ctl.InvokeRequired)
            ctl.Invoke(doit, args);
        else
            doit(args);
    }
} 
公共静态类控制扩展
{
需要调用公共静态void(此控制ctl,
行动(doit)
{
如果(控制调用需要)
控制调用(doit);
其他的
doit();
}
需要调用公共静态void(此控制ctl,
动作doit,T args)
{
如果(控制调用需要)
调用(doit,args);
其他的
doit(args);
}
} 

用于指定操作的类型。也就是说,
publicstaticvoidinvokeIfNeed(这个控件ctl,actiondoit)
Control
类(和所有派生类)添加了一个
invokeIfNeed
方法。但是,只有在将声明它们的类的命名空间显式导入到范围中时,才能使用此方法。

它表示扩展方法。在您给出的示例中,任何控件对象都可以使用invokeIfNeed(Action doit)方法。这是对控件已有的所有方法的补充。

它用于定义给定类型的方法。

向这样的参数添加“This”关键字将导致该方法被解释为扩展方法而不是常规静态方法。

方法声明中的This修饰符表示该方法是一种扩展方法

方法的静态声明和传入的this修饰符表示一个扩展方法,其中所有控制对象都将添加这些方法,就好像它们最初是以这种方式构建的一样

i、 e: 现在你可以做了

Control myControl = new Control();

myControl.InvokeIfNeeded(myaction);


它用于标记要添加扩展方法的对象类型。

感谢链接,帮助我更好地理解。
myControl.InvokeIfNeeded(myaction, args);