.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: c#, indexer, .net, .net framework