gpt4 book ai didi

c# - 静态方法声明中的 "this"是什么意思?

转载 作者:太空狗 更新时间:2023-10-29 20:55:31 24 4
gpt4 key购买 nike

我看到一些代码在函数参数声明中使用关键字this。例如:

public static Object SomeMethod( this Object blah, bool blahblah)

this 这个词在那种情况下是什么意思?

最佳答案

这意味着 SomeMethod() 是一个 extension methodObject 类。

定义它之后,您可以在任何 Object 实例上调用此方法(尽管它被声明为 static),如下所示:

object o = new Object();
bool someBool = true;

// Some other code...

object p = o.SomeMethod(someBool);

this Object 参数指的是您调用它的对象,实际上在参数列表中找不到。

当您像实例方法一样调用它时,它被声明为 static 的原因是编译器将其转换为 IL 中的真正静态调用。虽然这很深入,所以我不会详细说明,但这也意味着您可以像调用任何静态方法一样调用它:

object o = new Object();
bool someBool = true;

// ...

object p = ObjectExtensions.SomeMethod(o, someBool);

关于c# - 静态方法声明中的 "this"是什么意思?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5075988/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com