New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Revisit ObjectExtensions.This() internal extension method #448
Comments
Tricky thing here is that delegates, created for the same object, should be considered equal. |
Interesting, that is definitely something to consider. I wonder if there's some clever syntax to avoid reflection and have the compiler provide the delegate with the right identity? It's just so unusual for extension methods to provide any concrete benefit aside from the compiler syntax sugar! |
Anyway, this is hardly a big matter, I just don't like extension methods on object 😁 |
According to SharpLab, it compiles to smth like this: [CompilerGenerated]
internal unsafe static Func<object> <<Main>$>g__Del4|0_3(object o)
{
return new Func<object>(o, (nint)(delegate*<object, object>)(&Helper.This));
} But I cannot write such code manually, I can't even find Func constructor with two parameters. |
In #345 a new internal extension method was added to make creating more efficient delegates easier.
We should consider an approach that avoids extension methods on
object
, such as using a regular static method.The text was updated successfully, but these errors were encountered: