当前位置:编程学习 > C#/ASP.NET >>

属性的用法带有[ ]是怎么回事

Microsoft.VisualStudio.TestTools.UITesting 命名空间下,有UITestControl.SearchProperties 属性 
然后我到MSDN上查了下,SearchProperties确实是属性,可是我确不明白它的用法。通常属性都是这样用的,例如,有个UITestControl的类叫UITestControlA,如果是UITestControlA.SearchProperties=...或者...=UITestControlA.SearchProperties。
但是我从资料上看到,属性可以这样用,带[ ]的,如this.SearchProperties[WinWindow.PropertyNames.Name] = "系统主窗口";
这个不是索引器的东西吗?

菜鸟,还请指教。 --------------------编程问答-------------------- 自己看Attribute的帮助 --------------------编程问答-------------------- 查了,没找到 --------------------编程问答-------------------- --------------------编程问答-------------------- 这是索引器,用于我们获取对象的集合属性中的某个元素。

使用的方式一般是:对象名[int]或对象名[string] --------------------编程问答-------------------- 我通常都是理解为数组。 --------------------编程问答-------------------- 这叫索引器属性


    /// <summary>
    /// 定义帐套类别
    /// </summary>
    internal sealed class AccountVoucherType
    {
        #region -变量定义

        /// <summary>
        /// 帐套类别
        /// </summary>
        private DataSet m_dsMain = null;

        #endregion

        #region -构造

        /// <summary>
        /// 构造函数
        /// </summary>
        private AccountVoucherType()
        {
            
        }

        #endregion

        #region -属性

        /// <summary>
        /// 取得帐套类别
        /// </summary>
        /// <param name="strTypeName">类别名</param>
        /// <returns>失败返回-1</returns>
        internal int this[string strTypeName]
        {
            get
            {
                using (DataView dv = new DataView(this.m_dsMain.Tables[0]))
                {
                    dv.RowFilter = string.Format("str_VoucherName='{0}'", strTypeName);
                    if (dv.Count > 0)
                    {
                        return Convert.ToInt32(dv[0]["int_VoucherSort"]);
                    }
                    else
                    {
                        return -1;
                    }
                }
            }
        }

        /// <summary>
        /// 取得帐套类别名称
        /// </summary>
        /// <param name="nTypeID">类别标识</param>
        /// <returns>失败返回null</returns>
        internal string this[int nTypeID]
        {
            get
            {
                using (DataView dv = new DataView(this.m_dsMain.Tables[0]))
                {
                    dv.RowFilter = string.Format("int_VoucherSort='{0}'", nTypeID);
                    if (dv.Count > 0)
                    {
                        return dv[0]["str_VoucherName"].ToString();
                    }
                    else
                    {
                        return null;
                    }
                }
            }
        }

--------------------编程问答-------------------- 索引器本质上也是属性 --------------------编程问答-------------------- 看下SearchProperties的定义,其中应该有T this[string name]之类的定义 --------------------编程问答-------------------- 如何看SearchProperties的定义? --------------------编程问答--------------------
引用 6 楼 isjoe 的回复:
这叫索引器属性


C# code


    /// <summary>
    /// 定义帐套类别
    /// </summary>
    internal sealed class AccountVoucherType
    {
        #region -变量定义

        /// <summary>
        /// 帐套类别
……
 学习了 --------------------编程问答-------------------- --------------------编程问答-------------------- 索引这个是
其实属性也属于索引 --------------------编程问答--------------------   在简单的开发中比较少用到索引。。。所以还是不熟悉!! --------------------编程问答--------------------
引用 9 楼 zhang_meixia 的回复:
如何看SearchProperties的定义?


右键转到定义 --------------------编程问答-------------------- 索引器。 --------------------编程问答-------------------- string str = "abcdef";
char chr = str[0]; // 0是索引 str[0]表示"abcdef"中的第0的位置的char 也就是'a'; --------------------编程问答-------------------- xuexi --------------------编程问答-------------------- attribute/property/indexer。
补充:.NET技术 ,  C#
CopyRight © 2012 站长网 编程知识问答 www.zzzyk.com All Rights Reserved
部份技术文章来自网络,