C# [] 运算符
2017-06-19 11:09
197 查看
using UnityEngine; using System.Collections; using System.Collections.Generic; namespace UGUI { [System.Serializable] public class InventoryItemData { public int slot_position; public int item_id; public int count; } [System.Serializable] public class Inventory { Dictionary<int, InventoryItemData> slot_index = new Dictionary<int, InventoryItemData>(); /// <summary> /// 通过 inventory[slot_id]的方式,去访问slot成员 /// </summary> /// <param name="id">想要访问的格子id</param> /// <returns>InventoryItemData,如果id不存在,则会返回空</returns> public InventoryItemData this[int id] { get { InventoryItemData result = null; slot_index.TryGetValue( id, out result); return result; } } } }
前几天自己写了一个UGUI的背包,突然忘记了如何重载[]运算符。
于是查了查,记录一下。
public ValueType this[ KeyType key ]
{
get
{
return ...
}
}
另外,只要this的KeyType的类型不同,是可以重载的,比如inventory[int_id] 或 inventory[String_ID]就可以用于在两种不同的内部的容器中进行检索,并返回不同类型的值。和函数重载规则一致。
相关文章推荐
- C#中,可重载的运算符
- C#运算符的优先顺序
- is 和 as 运算符的作用与区别 c#
- C#的??运算符~
- C#中的??运算符
- 全面理解C#中的重载运算符和转换运算符
- c#运算符的重载
- C#新发现:异或(^)运算符也适用于布尔值
- C#源码学习之---运算符的重载
- C# 运算符
- C#运算符资料
- c#中的??运算符。
- C#-运算符的重载范例
- C#运算符资料
- C#笔记(1)--->基本语法 [运算符]
- C#中38个常用运算符的优先级的划分和理解。
- 看C#入门教程上一处错误,扩展了一下^运算符的命题思路
- c#中的??运算符和可空类型(如int?)
- AndAlso & OrElse Operators in C#短路运算符
- c#里的运算符重载