- 浏览: 257032 次
- 性别:
- 来自: 北京
文章分类
- 全部博客 (293)
- web (1)
- [随笔分类]项目管理 (30)
- [随笔分类]WCF (14)
- 未分类 (1)
- [随笔分类]Linq (4)
- [随笔分类]C#基础 (24)
- 项目 (1)
- [网站分类]3.非技术区(技术之外的文章,但不要涉及任何政治内容) (8)
- [网站分类]1.首页原创精华.NET区(包含架构设计、设计模式)(对首页文章的要求:原创、高质量、经过认真思考并精心写作) (9)
- [随笔分类]Ubuntu (4)
- ASP.Net (1)
- [网站分类]2..NET新手区(用于发表不合适发表在首页的.NET技术文章,包括小经验、小技巧) (30)
- [随笔分类]ASP.NET MVC (20)
- [随笔分类]ASP.NET (3)
- [随笔分类]程序员厨房 (4)
- [随笔分类]英语学习 (28)
- [网站分类]4.其他技术区 (1)
- [随笔分类]Silverlight (12)
- [随笔分类]CodeSmith (8)
- [随笔分类]其他 (4)
- [随笔分类]Ruby (4)
- [发布至博客园首页] (34)
- [网站分类]其他技术区 (3)
- [随笔分类]Ruby on Rails (2)
- [网站分类].NET新手区 (33)
- [随笔分类]TDD (1)
- [随笔分类]不谈技术 (2)
- [网站分类]非技术区 (7)
最新评论
-
yicone:
You make a mistake when paste t ...
WCF步步为营(一):简单示例 -
jinweijie:
你好,这个实现不错,但是在用了scriptmanager以后就 ...
在服务器端保存ViewState
1. 概述
索引器允许类或结构的实例就像数组一样进行索引。索引器类似于属性,不同之处在于它们的访问器采用参数。索引器在语法上方便您创建客户端应用程序可将其作为数组访问的类、结构或接口。索引器经常是在主要用于封装内部集合或数组的类型中实现的。
例如,假定具有一个名为 TempRecord 的类,此类表示在 24 小时内的 10 个不同时间记录的华氏度。此类包含一个表示温度的 float 类型的名为“temps”的数组和表示记录温度的日期的 DateTime。通过在此类中实现一个索引器,客户端可以通过 float temp = tr[4] 而不是 float temp = tr.temps[4] 语法访问 TempRecord 实例中的温度。索引器表示法不仅简化了客户端应用程序的语法,还使其他开发人员能够更加直观地理解类及其用途。使用索引器可以用类似于数组的方式为对象建立索引。
get 访问器返回值。set 访问器分配值。this 关键字用于定义索引器。value 关键字用于定义由 set 索引器分配的值。
索引器不必根据整数值进行索引,由您决定如何定义特定的查找机制。索引器可被重载索引器可以有多个形参,例如当访问二维数组时。
2. 示例:
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
namespace NetTest
{
public class TestIndexClass
{
public void Test()
{
TempRecord tempRecord = new TempRecord();
// Use the indexer's set accessor
tempRecord[3] = 58.3F;
tempRecord[5] = 60.1F;
// Use the indexer's get accessor
for (int i = 0; i < 10; i++)
{
// This example validates the input on the client side. You may
// choose to validate it in the class that implements the indexer, and throw an
// exception or return an error code in the case of invalid input.
if (i < tempRecord.Length)
{
System.Console.WriteLine("Element #{0} = {1}", i, tempRecord[i]);
}
else
{
System.Console.WriteLine("Index value of {0} is out of range", i);
}
}
//Uncomment this code to see how the .NET Framework handles indexer exceptions
//try
//{
// System.Console.WriteLine("Element #{0} = {1}", tempRecord[tempRecord.Length]);
//}
//catch (System.ArgumentOutOfRangeException e)
//{
// System.Console.WriteLine(e);
//}
DayCollection week = new DayCollection();
System.Console.WriteLine(week["Fri"]);
System.Console.WriteLine(week["Made-up Day"]);
}
}
class TempRecord
{
// Array of temperature values
private float[] temps = new float[10] { 56.2F, 56.7F, 56.5F, 56.9F, 58.8F,
61.3F, 65.9F, 62.1F, 59.2F, 57.5F };
// Auto-Implemented Property
System.DateTime date { get; set; }
// To enable client code to validate input
// when accessing your indexer.
public int Length
{
get { return temps.Length; }
}
// Indexer declaration.
// Input parameter is validated by client
// code before being passed to the indexer.
public float this[int index]
{
get
{
return temps[index];
}
set
{
temps[index] = value;
}
}
}
//C# 并不将索引类型限制为整数。例如,对索引器使用字符串可能是有用的。通过搜索集合内的字符串并返回相应的值,可以实现此类索引器。
//由于访问器可被重载,字符串和整数版本可以共存。
class DayCollection
{
string[] days = { "Sun", "Mon", "Tues", "Wed", "Thurs", "Fri", "Sat" };
// This method finds the day or returns -1
private int GetDay(string testDay)
{
int i = 0;
foreach (string day in days)
{
if (day == testDay)
{
return i;
}
i++;
}
return -1;
}
// The get accessor returns an integer for a given string
public int this[string day]
{
get
{
return (GetDay(day));
}
}
}
}
发表评论
-
C#拾遗系列(1):委托
2008-06-11 14:43 596一、委托概述 委托具有以下特点: 委托类似于 ... -
C#拾遗系列(2):属性
2008-06-11 14:54 7171. 这里主要演示属性的继承和覆盖 2. 把属性理解为方法 ... -
C#拾遗系列(3):构造函数
2008-06-11 15:19 6171. 主要演示构造函数的继承 声明空 ... -
C#拾遗系列(5):泛型委托
2008-06-14 17:25 589using System; using System.Col ... -
C#拾遗系列(6):迭代器
2008-06-14 23:03 5221. 示例: using System; using Sys ... -
C#拾遗系列(7):自定义属性
2008-06-18 14:52 6451 .描述 属性提供功能强大的方法以将声明信息与 C# 代码( ... -
C#拾遗系列(8):异常
2008-06-19 11:02 597using System; using System.Col ... -
C#拾遗系列(9):继承、接口、扩展方法、分部类、类操作、Ref and Out、可空类型
2008-06-19 15:07 1151本文内容: 继承 Equal示例 结构和类 ... -
MSIL(0):简介
2009-03-04 23:06 860Microsoft Intermediate Language ... -
MSIL(1): Hello World
2009-03-09 22:14 7751. 用记事本编写如下代码 .assembly HelloWo ... -
代码段:ASCII to Unicode
2009-04-17 10:44 7891: private string Co ... -
Get countries from system
2009-05-08 16:02 8021: using System; 2: usi ... -
[Tips]:Read value from Resource file in C#
2009-05-18 16:18 10341: //Namespace refer ... -
[tips]: 多线程 ManualResetEvent
2009-05-21 14:23 1340WaitHandle用于实现对共享资源的独占访问,AutoRe ... -
C#拾遗系列(1):委托
2008-06-11 14:43 671一、委托概述 委托具有以下特点: 委托 ... -
C#拾遗系列(2):属性
2008-06-11 14:54 6011. 这里主要演示属性的继承和覆盖 2. 把属性理解为方法 ... -
C#拾遗系列(3):构造函数
2008-06-11 15:19 6331. 主要演示构造函数的继承 ... -
C#拾遗系列(4):索引器
2008-06-11 15:30 5921. 概述 索引器允许类或结构的实例就像数组一样进行索引。索引 ... -
C#拾遗系列(5):泛型委托
2008-06-14 17:25 683using System; using System.Col ... -
C#拾遗系列(6):迭代器
2008-06-14 23:03 7141. 示例: using System; using Sys ...
相关推荐
在C#编程语言中,索引器是一种特殊的方法,它允许类或结构的实例像数组一样被访问。索引器的使用使得数据集合可以轻松地通过一个特定的键(通常是整数或字符串)来访问其元素,而无需定义显式的get和set方法。在本篇...
在C#编程语言中,类索引器是一种特殊的方法,允许开发者通过索引来访问类的成员,就像操作数组或集合一样。索引器使得类能够模拟数组的行为,即便其内部数据结构并非数组。这种功能极大地提高了代码的可读性和易用性...
4. **自定义逻辑**:索引器可以包含自定义的验证逻辑,例如检查索引是否超出范围,或者根据索引执行特定操作。 三、索引器的类型和参数 索引器不仅可以接受整型参数,还可以接受其他类型,如字符串、自定义类型等...
在C#编程语言中,索引器是一种特殊的方法,它允许我们像操作数组一样访问类或结构中的元素。索引器对于那些需要提供类似数组访问方式的自定义数据结构非常有用,比如字典、列表或其他集合。这个话题非常适合C#初学者...
在C#编程语言中,索引器是一种特殊的方法,它允许类或结构的实例通过一个类似于数组的语法来访问其内部的数据。索引器的概念引入,使得开发者可以自定义对象的访问方式,使得代码更加直观和简洁。在这个“C#视频 ...
在C#编程语言中,索引器是一种特殊的方法,它允许类或结构的实例像数组一样通过索引来访问其成员。索引器的概念是面向对象编程中的一个重要特性,尤其是在处理集合、列表或者其他需要通过键值访问的数据结构时非常...
C#中的索引器是一种特殊类型的成员,它允许对象像数组一样通过索引进行访问,但其实现方式更加灵活。索引器的概念是基于数组访问的便利性,但超越了数组的限制,允许使用自定义的数据结构和任意类型的索引来访问数据...
在C#编程语言中,索引器是一种特殊的方法,它允许我们通过索引访问类或结构的实例,就像数组或集合一样。索引器使得数据访问更加直观和便捷,尤其适用于处理具有自然索引的数据集合。"龙天下整理c#索引器的例子"是一...
在C#编程语言中,索引器是一种特殊的方法,它允许类或结构体的实例像数组一样被访问,即使它们内部的数据存储结构并不是数组。索引器提供了方便的方式来通过一个特定的键(通常是整数或字符串)来访问对象的成员。...
在C#编程语言中,索引器是一种特殊的方法,它允许我们像操作数组一样通过索引来访问类中的数据。这个特性使得自定义类型能够提供类似于数组的访问方式,增加了代码的可读性和便利性。本篇文章将深入探讨C#中的索引器...
在C#编程语言中,索引器是一种特殊的方法,它允许类或结构以类似数组的方式访问其成员。索引器的使用使得数据集合可以轻松地通过下标进行访问,就像处理数组或列表一样。这对于创建自定义数据结构,如矩阵、字典或...
在这个“C#索引器的讲解(1)”中,我们将探讨索引器的基础知识,这是分四部分系列教程的第一部分。 首先,我们需要了解索引器的基本语法。在C#中,索引器通常定义为类或结构的实例成员,并且使用`this`关键字作为...
本主题将深入探讨如何使用C#快速创建NTFS(New Technology File System)硬盘文件索引,这是一项重要的技术,可以帮助用户快速定位和访问大量文件。NTFS是Windows操作系统的主要文件系统,它提供了高级功能,如权限...
在C#编程语言中,索引器是一种特殊的方法,它允许类或结构的实例像数组一样通过索引进行访问。这对于处理数据集合尤其有用,比如数据库记录、数组或其他需要通过键值来查找元素的数据结构。索引器的概念是C#为提高...
4. **重载**:索引器可以被重载,即可以通过不同的参数列表来实现多个索引器方法。 5. **多维索引**:索引器可以支持多个参数,例如在访问二维数组时。 #### 五、使用示例 下面是一个简单的使用示例: ```csharp ...
4. **默认索引器**: C#中的`List<T>`和`Dictionary, TValue>`等集合类已经提供了默认的整数索引器,但你也可以为这些类添加额外的索引器,以支持其他类型的访问方式。 5. **只读或只写索引器**: 你可以在索引器...
在C#编程语言中,索引器是一种特殊的方法,它允许类或结构的实例像数组一样通过索引进行访问。索引器的概念是面向对象设计的一部分,为用户提供了一种直观的方式来访问集合或序列中的元素。在本文中,我们将深入探讨...
4. 索引器与属性类似,都提供访问类中数据的方法,但索引器带有参数,而属性通常没有参数。 接下来,我们讨论索引器与属性的区别: 1. 标识方式:属性通过名称识别,如 `public string MyProperty { get; set; }`,...
C#索引器详解 索引器是C#的一个简单组件,它允许类或结构的实例像数组一样进行索引。索引器类似于属性,不同之处在于它们的访问器采用参数。索引器在语法上方便您创建客户端应用程序可将其作为数组访问的类、结构或...
开发语言:C# 参考网络上流传的《勇者斗恶龙》游戏源码制作的一个射击类游戏,借用了《勇者斗恶龙》的游戏界面及部分源码。 整个游戏框架已基本完成,源码中采用了一些设计模式,有精美的游戏画面和详尽的代码注释,...