Why Can’t Extension methods on Value Type be curried

This is a followup to an post Extension Methods and Curried delegates. I have been recently asked if why Error CS1113: “Extension methods ‘Name’ defined on value type ‘typename’ cannot be used to create delegates” was added and what does it mean ? Here is the sort version of the story, basically the there is…

1

Extension methods Interoperability between languages

Extension methods written in C# can be imported and called with Extension method semantics in VB and vice versa. This is possible since me decorate the assemblies , types and methods in the same manner. Using the Attribute [AttributeUsage(AttributeTargets.Method | AttributeTargets.Class | AttributeTargets.Assembly)] public sealed class ExtensionAttribute : Attribute { } This should be a special note…

4

Conversion rules for Instance parameters and their impact

Overview: Instance parameter is the first parameter of an extension method and has the “this” parameter modifier. I discuss special conversion rules for them and some of the things that users of extension methods might encounter. Consider the code bellow using System;using System.Linq;namespace TestExtensions{    class Program    {        static void Main()        {            0.Foo();    // 1            0f.Foo();           …

2

Extension methods and Curried Delegates

Delegates  Since Extension methods behave like instance method it makes sense that we should be able to create delegates that would accept the instance method signature, to this end we have included Adding an Extension Methods to delegate invocation List    Extension methods can now be used like an instance methods when being added to a delegate…

8

Extension method Binding and Error reporting

Overview: Extension methods are static methods that are bound with instance semantics. In this article i will give a brief overview of the various steps involved in binding a extension methods. Finally this will prepare the way to discuss the error reporting for extension methods and how these error messages can be used to diagnose the problem at hand. All…

3

Extension methods in C#

Overview  Extension methods are a new feature for C# 3.0 and I had the opportunity to implement them in the Compiler. These methods can then be called with instance syntax on any object that is convertible(see convertibility section for details) to the first param of the method. Validation  Extension methods are defined in C# as static class…

18