Aug 8 2009

Changing the default name of indexer

Category: .Net | .Net Framework | C# ashish sheth @ 12:05

.NET framework contains many hidden gems, which we rarely need and use, in the Base class libraries.

You probably know that when you write an indexer in C#, it will get compiled into two methods called get_Item and set_Item.

So when you declare an indexer like this:

public string this[int number]

it actually compiles into this:

public string get_Item(int number)

Now, did you know that you can have any other name for your indexer if you don't want the name of your indexer to be get_Item? Yes, you can use System.Runtime.CompilerServices.IndexerNameAttribute to change the name into which your indexer will be compiled. Here is the example.

[System.Runtime.CompnailerServices.IndexerName("BinaryFormatOf")]
    public string this[int number]

The above lines will generate a method like below:

public string get_BinaryFormatOf(int number)

I am not sure in what scenario this can be useful but it will certainely usefull if you have indexers which does fit into the getItem-setItem pattern.

Tags: , , ,

Comments are closed