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[]; 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[] = new Eagle("wo bu gu dan!");
eagle[] = new Eagle("wo shi yi zhi xiao xiao niao");
Console.WriteLine(eagle[].GetName()+"\n"+eagle[].GetName());
Console.Read();
}
}
汗,先前对索引器的用法弄错了,直接是在客户端实例化类对象后调用类的Eagle型实体变量_eagle[0]并进一步进行实例化存储在数组里,不是基于索引器的调用,查了下msdn的帮助稍作修改,现在把索引器的相关用法写下来:
1.索引器允许您按照与数组相同的方式对类、结构或接口进行索引,要声明类或结构上的索引器,请使用 this 关键字。
2.索引器类型及其参数类型必须至少如同索引器本身一样是可访问的。
3.索引器的签名由其形参的数量和类型组成。它不包括索引器类型或形参名。如果在同一类中声明一个以上的索引器,则它们必须具有不同的签名。
4.索引器值不属于变量;因此,不能将索引器值作为 ref 或 out 参数进行传递。
5.C# 并不将索引类型限制为整数。例如,对索引器使用字符串可能是有用的。通过搜索集合内的字符串并返回相应的值,可以实现此类的索引器。由于访问器可被重载,字符串和整数版本可以共存。
c#索引器的简单用法的更多相关文章
- C#中的索引器的简单理解和用法
索引器是一种特殊的类成员,它能够让对象以类似数组的方式来存取,使程序看起来更为直观,更容易编写. 1.索引器的定义 C#中的类成员可以是任意类型,包括数组和集合.当一个类包含了数组和集合成员时,索引器 ...
- .NET基础知识之七——索引器
索引器是什么?有什么作用?索引器允许类的实例以访问数组的形式来访问对象里面的属性.如我们经常可以看到类似于dr["name"]="test",或者 ...
- C# 索引器的理解和使用
概述 此部分内容引用自MSDN文档 使用索引器可以用类似于数组的方式为对象建立索引. get 取值函数返回值. set 取值函数分配值. this 关键字用于定义索引器. value 关键字用于定义 ...
- 如何使用T-SQL备份还原数据库及c#如何调用执行? C#中索引器的作用和实现。 jquery控制元素的隐藏和显示的几种方法。 localStorage、sessionStorage用法总结 在AspNetCore中扩展Log系列 - 介绍开源类库的使用(一) span<T>之高性能字符串操作实测
如何使用T-SQL备份还原数据库及c#如何调用执行? 准备材料:Microsoft SQL Server一部.需要还原的bak文件一只 一.备份 数据库备份语句:user master backup ...
- C#索引器的用法
索引器允许类或者结构的实例按照与数组相同的方式进行索引取值,索引器与属性类似,不同的是索引器的访问是带参的. 索引器和数组比较: (1)索引器的索引值(Index)类型不受限制 (2)索引器允许重载 ...
- Asp.Net中索引器的用法
索引器定义类似于属性,但其功能与属性并不相同.索引器提供一种特殊的方法编写get和set访问器.属性可以像访问字段一样访问对象的数据,索引器可以使用户像访问数组一样访问类成员. 一.索引器特性 1.g ...
- (转)c# 属性与索引器
属性是一种成员,它提供灵活的机制来读取.写入或计算私有字段的值. 属性可用作公共数据成员,但它们实际上是称为“访问器”的特殊方法. 这使得可以轻松访问数据,还有助于提高方法的安全性和灵活性. 一个简单 ...
- C#索引器-有参属性
总结 只要类中有类似于属性的元素就应创建索引器,此属性代表的不是一个值,而是值的集合,其中每一个项由一组参数标识. 这些参数可以唯一标识应引用的集合中的项. 索引器延伸了属性的概念,索引器中的一个成员 ...
- 【.net 深呼吸】细说CodeDom(7):索引器
在开始正题之前,先补充一点前面的内容. 在方法中,如果要引用方法参数,前面的示例中,老周使用的是 CodeVariableReferenceExpression 类,它用于引用变量,也适用于引用方法参 ...
随机推荐
- Java中for循环以及循环中标签
1.第一种,通过迭代的方式 File[] listFiles = file.listFiles(); for (Iterator iterator = files.iterator(); iterat ...
- Android 事件监听处理
事件监听的处理模型包括三个成员:事件源.事件以及事件监听器. 基于监听的事件处理模型一般包括几个步骤: 1.获取普通界面组件: 2.实现事件监听器类 3.将监听器对象注冊给普通组件 当事件源上发生指定 ...
- 工作vs.学�
近一两年来,我先后对[工作与学习]的复杂过程有过多次的头脑风暴,而且感觉在这方面略有所成(看这里和这里):当然既然仅仅是头脑风暴,所谓的所成也仅仅是一些粗糙的想法,一些没有实证过的如果,算是积累而已, ...
- STL 案例分析
#include <iostream> using namespace std; #include "string" #include <vector> # ...
- Python学习 之 函数
1.为什么要使用函数 (1)降低编程难度:将复杂的问题分解成简单的小问题 (2)代码重用 2.函数的定义 def 函数名(参数列表):#可以没有参数 函数体 3.函数缺省参数(默认参数):设置默认参数 ...
- log4net的应用
1.下载log4net 2编写log4net的配置文件 <?xml version="1.0" encoding="utf-8" ?> <co ...
- dl-ssl.google.com
转载:http://jingyan.baidu.com/article/64d05a02752300de55f73b99.html 搭建Android就会用到Android SDK,而安装SDK有个恶 ...
- X - Urban Elevations
Urban Elevations An elevation of a collection of buildings is an orthogonal projection of the buil ...
- hadoop学习记录(一)HDFS
hadoop的灵感源于谷歌,最初目的是解决传统数据库处理数据成本高和速度慢的问题. hadoop两个核心项目是HDFS(hadoop分布式文件系统)和MapReduce. HDFS用来实现数据的存储, ...
- 写入文件txt
FileStream fs = new FileStream(@"d:\service.txt", FileMode.OpenOrCreate, FileAccess.Write) ...