참고 : https://msdn.microsoft.com/en-us/library/6x16t2tx.aspx
HttpRequest를 보면 분명 단일 클래스인데 배열로 접근? 하고 있지 않은가(예, Request["searchflag"]) 도대체 어떻게 하는거지 하고 찾아 봤더니 요런 방법으로 사용중이 었다.
public T this[string key] 으로 선언하여 사용하면되겠다
Following is my slight variation on MSDN example:
public class KeyValueIndexer<K,V>
{
private Dictionary<K, V> myVal = new Dictionary<K, V>();
public V this[K k]
{
get
{
return myVal[k];
}
set
{
myVal.Add( k, value );
}
}
}
Person Class:
class Person
{
public string FirstName { get; set; }
public string LastName { get; set; }
public string MiddleName { get; set; }
}
Usage:
static void Main( string[] args )
{
KeyValueIndexer<string, object> _keyVal = new KeyValueIndexer<string, object>();
_keyVal[ "Person" ] = new Person() { FirstName="Jon", LastName="Doe", MiddleName="S" };
_keyVal[ "MyID" ] = 123;
Console.WriteLine( "My name is {0} {1}, {2}", ( ( Person ) _keyVal [ "Person" ] ).FirstName, ( ( Person ) _keyVal[ "Person" ] ).MiddleName, ( ( Person ) _keyVal[ "Person" ] ).LastName );
Console.WriteLine( "My ID is {0}", ( ( int ) _keyVal[ "MyID" ] ) );
Console.ReadLine();
}