Skip to content

Suggestion: show indexer accesors as this[...].get instead of get_Item(...) #148

Open
@jnm2

Description

@jnm2

Current:

System.Collections.Generic.KeyNotFoundException: The given key was not present in the dictionary.

   at TValue System.Collections.Generic.Dictionary<TKey, TValue>.get_Item(TKey key)

Proposed:

System.Collections.Generic.KeyNotFoundException: The given key was not present in the dictionary.

   at TValue System.Collections.Generic.Dictionary<TKey, TValue>.this[TKey key].get

If the property name matches the type's DefaultMemberAttribute (if it exists) or is "Item" (only if DefaultMemberAttribute does not exist), it is a default indexer and should be shown using the keyword this.
Otherwise, it is a non-default indexer which languages other than C# can declare but C# cannot, and it could be shown using its name instead of the keyword this or it could go back to its current behavior (get_NameOfNonDefaultIndexer) which matches the C# syntax you would use to actually call a non-default indexer from C# code.

The set/init accessor would be the same.

Metadata

Metadata

Assignees

No one assigned

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions