C#2.0中方括号 "[]"都有几种用处?哪位给解答下?
我已经知道的:
1) int i[10]; 代表数组
2) [Attribute]属性
3) [Web Method] 我感觉也算是属性吧,表示web方法。
还有那种用途?
大家看一下的代码,是一个类下的变量声明//变量
        [XmlArray(IsNullable = true)]
        [XmlArrayItem(typeof(bool)),
        XmlArrayItem(typeof(char)),
        XmlArrayItem(typeof(string)),
        XmlArrayItem(typeof(byte)),
        XmlArrayItem(typeof(byte[])),
        .....
        XmlArrayItem(typeof(XmlDocument))]这种声明变量的方式头一次见,谁能给个详细的解释?这种声明方式有什么好处?

解决方案 »

  1.   

    不是声明变量啊,是Attribute。建议去翻翻书
      

  2.   

    1) int i[10]; 代表数组 
    你这是那门子的数组啊?求教
      

  3.   

    C# 语言参考
    [] 运算符(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 类型,该类型将键和任意类型的值关联在一起。复制代码 
    Collections.Hashtable h =  new Collections.Hashtable();
    h["a"] = 123; // note: using a string as the index
    方括号还用于指定属性(C# 编程指南):复制代码 
    [attribute(AllowMultiple=true)]
    public class Attr 
    {
    }
    可以使用方括号来指定指针索引:复制代码 
    unsafe fixed ( int* p = fib )   // p points to fib from earlier example
    {
        p[0] = p[1] = 1;
        for( int i=2; i<100; ++i ) p[i] = p[i-1] + p[i-2];
    }
    不执行边界检查。  C# 语言规范 
    有关更多信息,请参见 C# 语言规范中的以下各章节:1.6.6.5 运算符7.2 运算符http://msdn.microsoft.com/zh-cn/library/a3hd7ste(VS.80).aspx
      

  4.   

    任何类都可定义自己的[]定义
    public int this[int idx]
    {
        get { return idx + 1; }
    }使用
    Console.WriteLine(this[20]);