zoukankan      html  css  js  c++  java
  • c#索引器的简单用法

        abstract class Bird
        {
            protected string name;
    
            public abstract string Name
            {
                get;
                set;
            }
            public  abstract string GetName();
        }
    
        class Eagle : Bird
        {
           
            public Eagle(string name)
            {
                this.name = name;
            }
            public override string Name
            {
                get
                {
                    return name;//throw new NotImplementedException();
                }
                set
                {
                    name = value;//throw new NotImplementedException();
                }
            }
    
            public override string  GetName()
            {
                //Console.WriteLine(Name);//throw new NotImplementedException();
                return Name;
            }
            public Eagle[] _eagle = new Eagle[10];
    
            public Eagle this[int index]
            {
                get { return _eagle[index]; }
                set
                {
                    _eagle[index] = value;
                }
            }
        }

    客户端调用代码:

        class Program
        {
            static void Main(string[] args)
            {
    
                Eagle eagle = new Eagle("我是一只老鹰呀!");
                Console.WriteLine(eagle.GetName());
                //eagle._eagle[0] = new Eagle("wo shi yi zhi xiao xiao niao");
                //Console.WriteLine(eagle._eagle[0].GetName());
                eagle[0] = new Eagle("wo bu gu dan!");
                eagle[1] = new Eagle("wo shi yi zhi xiao xiao niao");
                Console.WriteLine(eagle[0].GetName()+"
    "+eagle[1].GetName());
                Console.Read();
            }
        }


    汗,先前对索引器的用法弄错了,直接是在客户端实例化类对象后调用类的Eagle型实体变量_eagle[0]并进一步进行实例化存储在数组里,不是基于索引器的调用,查了下msdn的帮助稍作修改,现在把索引器的相关用法写下来:

    1.索引器允许您按照与数组相同的方式对类、结构或接口进行索引,要声明类或结构上的索引器,请使用 this 关键字。

    2.索引器类型及其参数类型必须至少如同索引器本身一样是可访问的。

    3.索引器的签名由其形参的数量和类型组成。它不包括索引器类型或形参名。如果在同一类中声明一个以上的索引器,则它们必须具有不同的签名。

    4.索引器值不属于变量;因此,不能将索引器值作为 refout 参数进行传递。

    5.C# 并不将索引类型限制为整数。例如,对索引器使用字符串可能是有用的。通过搜索集合内的字符串并返回相应的值,可以实现此类的索引器。由于访问器可被重载,字符串和整数版本可以共存。

  • 相关阅读:
    Oracle 存储过程_(收集)
    Oracle job procedure 存储过程定时任务(转自hoojo)
    windows环境下,Jenkins的安装和基础配置
    如何使用IntelliJ IDEA 配置Maven
    在IntelliJ IDEA中安装Junit,TestNG
    JAVA 操作 properties 配置文件
    Java语法----Java中equals和==的区别(转载)
    由于网页点击速度过快,导致selenium无法定位到元素的问题
    使用IntelliJ idea运行selenium3.0
    selenium webdriver java环境配置
  • 原文地址:https://www.cnblogs.com/lxGIS/p/3333916.html
Copyright © 2011-2022 走看看