Matjaž Mav Matjaž Mav - 1 month ago 6
C# Question

Generic this index property in dictionary

How can I achieve something like this. I don't want method that return casted value, I want use

this[]
is this possible?

public class DynamicDictionary : IDictionary<string, object>
{
public T this<T>[string key] where T : class
{
get
{
object value = null;
TryGetValue(key, out value);
return (T)value;
}
}

// ...
}

Answer

No, you can't. Indexers - and properties in general - can't be generic in C#. You'd have to use a method instead, or just cast in the calling code.