インデクサ
出典: フリー百科事典『ウィã‚ペディア(Wikipedia)ã€
インデクサ (indexer) ã¯ã€ãƒ—ãƒã‚°ãƒ©ãƒŸãƒ³ã‚°è¨€èªžC#ã§æ–°ã—ãå–り入れられãŸæ©Ÿèƒ½ã€‚インデクサを使ã†ã¨é…列ã¨åŒã˜æ§‹æ–‡ã§ã€ã‚¯ãƒ©ã‚¹ã‚„æ§‹é€ ä½“ã®ã‚¤ãƒ³ã‚¹ã‚¿ãƒ³ã‚¹ã«ã‚¢ã‚¯ã‚»ã‚¹ã™ã‚‹ã“ã¨ãŒã§ãる。
インデクサã¯C++ã®æ·»ãˆå—演算åã®å¤šé‡å®šç¾©ã¨ä¼¼ã¦ã„ã‚‹ãŒæ¬¡ã®ã‚ˆã†ãªç‚¹ã§ç™ºå±•ã—ãŸã‚‚ã®ã ã¨è¦‹ã‚‹ã“ã¨ã‚‚ã§ãる。ãŸã ã—C++ã¨C#ã®è¨€èªžè¨è¨ˆä¸Šã®äº‹æƒ…も絡んã§ã„ã‚‹ã®ã§ã€å˜ç´”ã«æ¯”較ã§ãã‚‹ã‚‚ã®ã§ã¯ãªã„。
- インデクサã§ã¯ãƒ—ãƒãƒ‘ティã®ã‚ˆã†ã«å€¤ã‚’å¾—ã‚‹ã¨ãã¨ä»£å…¥ã™ã‚‹ã¨ãã¨ã§å®Ÿéš›ã«ã¯åˆ¥ã®ãƒ¡ã‚½ãƒƒãƒ‰ã«åˆ†ã‹ã‚Œã¦ã„る。
- インデクサã¯å˜ç‹¬ã§å¤šæ¬¡å…ƒãªé…列を模倣ã§ãる。C++ã§åŒã˜ã‚ˆã†ãªã“ã¨ã‚’ã™ã‚‹ã«ã¯é–“ã«ä¸€æ™‚çš„ã«ã‚ªãƒ–ジェクトを入れるãªã©ã®æŠ€å·§ã‚’å‡ã‚‰ã™å¿…è¦ãŒã‚る。
リストを表ã™ã‚³ãƒ¬ã‚¯ã‚·ãƒ§ãƒ³ã®è¦ç´ ã®ã‚¢ã‚¯ã‚»ã‚¹ã§ã¯ã€ã‚¤ãƒ³ãƒ‡ã‚¯ã‚µã‚’用ã„ãªã„言語ã§ã¯ä¾‹ãˆã°æ¬¡ã®ã‚ˆã†ãªã‚¤ãƒ³ã‚¿ãƒ¼ãƒ•ã‚§ã‚¤ã‚¹ãƒ¡ã‚½ãƒƒãƒ‰ã«ã‚ˆã£ã¦å®šç¾©ã•ã‚Œã‚‹ã€‚
1) index番目ã®è¦ç´ ã®å–り出㗠Object get(int index); 例:Object o = list.get(3); 2) index番目ã®è¦ç´ ã« Object o をセット void set(int index, Object o); 例:list.set(2, o);
C# ã®ã‚¤ãƒ³ãƒ‡ã‚¯ã‚µã§ã¯ãƒªã‚¹ãƒˆã®è¦ç´ ã¸ã®ã‚¢ã‚¯ã‚»ã‚¹ã‚’é…列ã®ã‚¢ã‚¯ã‚»ã‚¹ã¨åŒã˜ã‚ˆã†ã«è¨˜è¿°ã™ã‚‹ã“ã¨ãŒã§ãる。
Object o = list[3]; list[2] = o;
ã“ã®éš›ã‚¤ãƒ³ãƒ‡ãƒƒã‚¯ã‚¹ã¨ã—ã¦æ•´æ•°ä»¥å¤–ã®å€¤(æ–‡å—列やオブジェクトãªã©)も使用ã™ã‚‹ã“ã¨ãŒã§ãã€ãƒãƒƒã‚·ãƒ¥ãƒ†ãƒ¼ãƒ–ルãªã©ã®é€£æƒ³é…列を表ã™ã‚³ãƒ¬ã‚¯ã‚·ãƒ§ãƒ³ã«ä½¿ç”¨ã•ã‚Œã¦ã„る。
Object o = map["key"];