본문으로 바로가기

this property 를 활용한 key,value 접근 샘플

category 카테고리 없음 2016. 8. 29. 10:38

참고 : 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();
        }