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;
}
}
// ...
}
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.
See more on this question at Stackoverflow