ThinkChat2.0新版上线,更智能更精彩,支持会话、画图、阅读、搜索等,送10W Token,即刻开启你的AI之旅 广告
# 运算符(C# 参考) 方括号 (**[]**) 用于数组、索引器和特性,也可用于指针。 ## 备注 数组类型是一种后跟 **[]** 的类型: ``` int[] fib; // fib is of type int[], "array of int". fib = new int[100]; // Create a 100-element int array. ``` 若要访问数组的一个元素,则用方括号括起所需元素的索引: ``` fib[0] = fib[1] = 1; for (int i = 2; i < 100; ++i) fib[i] = fib[i - 1] + fib[i - 2]; ``` 如果数组索引超出范围,则会引发异常。 不能重载数组索引运算符;但类型可以定义采用一个或多个参数的索引器和属性。索引器参数括在方括号中,这一点与数组索引类似;但可以将索引器参数声明为任何类型,这一点与数组索引不同,后者必须为整形。 例如,.NET Framework 定义 **Hashtable** 类型,该类型将键和任意类型的值关联在一起。 ``` System.Collections.Hashtable h = new System.Collections.Hashtable(); h["a"] = 123; // Note: using a string as the index. ``` 方括号还用于指定 [特性(C# 和 Visual Basic)](https://msdn.microsoft.com/zh-CN/library/z0w1kczw.aspx): ``` // using System.Diagnostics; [Conditional("DEBUG")] void TraceMethod() {} ``` 可以使用方括号来指定指针索引: ``` unsafe void M() { int[] nums = {0,1,2,3,4,5}; fixed ( int* p = nums ) { p[0] = p[1] = 1; for( int i=2; i<100; ++i ) p[i] = p[i-1] + p[i-2]; } } ``` 不执行边界检查。 ## C# 语言规范 有关详细信息,请参阅 [C# 语言规范](https://msdn.microsoft.com/zh-CN/library/ms228593.aspx)。该语言规范是 C# 语法和用法的权威资料。 ## 请参阅 [C# 参考](https://msdn.microsoft.com/zh-CN/library/618ayhy6.aspx) [C# 编程指南](https://msdn.microsoft.com/zh-CN/library/67ef8sbd.aspx) [C# 运算符](https://msdn.microsoft.com/zh-CN/library/6a71f45d.aspx) [数组(C# 编程指南)](https://msdn.microsoft.com/zh-CN/library/9b9dty7d.aspx) [索引器(C# 编程指南)](https://msdn.microsoft.com/zh-CN/library/6x16t2tx.aspx) [unsafe(C# 参考)](https://msdn.microsoft.com/zh-CN/library/chfa2zb8.aspx) [fixed 语句(C# 参考)](https://msdn.microsoft.com/zh-CN/library/f58wzh21.aspx)