- 浏览: 119841 次
- 性别:
- 来自: 北京
文章分类
最新评论
-
ulric:
第一个函数的for循环应该从0开始
判断一个字符串是否为回文 -
ocaicai:
c语言的影子比较重啊!呵呵O(∩_∩)O~
java实现约瑟夫环问题 -
烟的傀儡:
通俗易懂!!太棒了
java实现约瑟夫环问题 -
eachcan:
中等什么意思?非常小是多大?写文章请负点责任。
基础知识:MySQL数据类型及列类型 (1) -
rorely:
谢谢,少加了一个条件。呵呵。更正好了
编程实现“加3减3乘3除3”
<!--<br />
<br />
Code highlighting produced by Actipro CodeHighlighter (freeware)<br />
http://www.CodeHighlighter.com/<br />
<br />
-->索引器提供了一种可以让类被当作数组进行访问的方式。在C#中,类索引器是通过this的属性实现的。
index.ToString("D2")将index转换成一个具有两个字符宽度的字符串
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
namespace ClassIndexer
{
/// <summary>
/// define a class called AClass,which has only one private variable
/// </summary>
class AClass {
private string _name;
public string Name {
get { return this._name; }
set { this._name = value; }
}
public AClass(string name) {
this._name = name;
}
}
/// <summary>
/// AClassContainer class
/// </summary>
class AClassContainer {
private AClass[] _AClassList;
public AClassContainer() {
this._AClassList = new AClass[10];
}
public AClassContainer(int cap) {
this._AClassList = new AClass[cap];
}
/// <summary>
/// class indexer by using int
/// </summary>
/// <param name="index"></param>
/// <returns></returns>
public AClass this[int index] {
get {
if ((index < 0) || (index > this._AClassList.Length)) return null;
else return this._AClassList[index];
}
set {
if ((index < 0) || (index > this._AClassList.Length)) return;
else this._AClassList[index] = value;
}
}
/// <summary>
/// class indexer by using string
/// </summary>
/// <param name="name"></param>
/// <returns></returns>
public AClass this[string name] {
get {
foreach (AClass cls in this._AClassList) {
if (cls.Name == name) return cls;
}
return null;
}
}
}
class Program
{
static void Main(string[] args)
{
int count = 10;
AClassContainer classContainer = new AClassContainer(count);
for (int index = 0; index < count; index++) {
string name = index.ToString("D2");
classContainer[index] = new AClass(name);
}
for (int index = 0; index < count; index++)
{
AClass cls = classContainer[index];
System.Console.WriteLine("classContainer[{0}].Name=\"{1}\"",index,cls.Name);
}
System.Console.WriteLine();
for (int index = count - 1; index >= 0; index--) {
string name = index.ToString("D2");
AClass cls = classContainer[name];
System.Console.WriteLine("classContainer[{0}].Name=\"{1}\"",name,cls.Name);
}
System.Console.ReadLine();
}
}
}
结果:
classContainer[0].Name="00"
classContainer[1].Name="01"
classContainer[2].Name="02"
classContainer[3].Name="03"
classContainer[4].Name="04"
classContainer[5].Name="05"
classContainer[6].Name="06"
classContainer[7].Name="07"
classContainer[8].Name="08"
classContainer[9].Name="09"
classContainer[09].Name="09"
classContainer[08].Name="08"
classContainer[07].Name="07"
classContainer[06].Name="06"
classContainer[05].Name="05"
classContainer[04].Name="04"
classContainer[03].Name="03"
classContainer[02].Name="02"
classContainer[01].Name="01"
classContainer[00].Name="00"
index.ToString("D2")将index转换成一个具有两个字符宽度的字符串
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
namespace ClassIndexer
{
/// <summary>
/// define a class called AClass,which has only one private variable
/// </summary>
class AClass {
private string _name;
public string Name {
get { return this._name; }
set { this._name = value; }
}
public AClass(string name) {
this._name = name;
}
}
/// <summary>
/// AClassContainer class
/// </summary>
class AClassContainer {
private AClass[] _AClassList;
public AClassContainer() {
this._AClassList = new AClass[10];
}
public AClassContainer(int cap) {
this._AClassList = new AClass[cap];
}
/// <summary>
/// class indexer by using int
/// </summary>
/// <param name="index"></param>
/// <returns></returns>
public AClass this[int index] {
get {
if ((index < 0) || (index > this._AClassList.Length)) return null;
else return this._AClassList[index];
}
set {
if ((index < 0) || (index > this._AClassList.Length)) return;
else this._AClassList[index] = value;
}
}
/// <summary>
/// class indexer by using string
/// </summary>
/// <param name="name"></param>
/// <returns></returns>
public AClass this[string name] {
get {
foreach (AClass cls in this._AClassList) {
if (cls.Name == name) return cls;
}
return null;
}
}
}
class Program
{
static void Main(string[] args)
{
int count = 10;
AClassContainer classContainer = new AClassContainer(count);
for (int index = 0; index < count; index++) {
string name = index.ToString("D2");
classContainer[index] = new AClass(name);
}
for (int index = 0; index < count; index++)
{
AClass cls = classContainer[index];
System.Console.WriteLine("classContainer[{0}].Name=\"{1}\"",index,cls.Name);
}
System.Console.WriteLine();
for (int index = count - 1; index >= 0; index--) {
string name = index.ToString("D2");
AClass cls = classContainer[name];
System.Console.WriteLine("classContainer[{0}].Name=\"{1}\"",name,cls.Name);
}
System.Console.ReadLine();
}
}
}
结果:
classContainer[0].Name="00"
classContainer[1].Name="01"
classContainer[2].Name="02"
classContainer[3].Name="03"
classContainer[4].Name="04"
classContainer[5].Name="05"
classContainer[6].Name="06"
classContainer[7].Name="07"
classContainer[8].Name="08"
classContainer[9].Name="09"
classContainer[09].Name="09"
classContainer[08].Name="08"
classContainer[07].Name="07"
classContainer[06].Name="06"
classContainer[05].Name="05"
classContainer[04].Name="04"
classContainer[03].Name="03"
classContainer[02].Name="02"
classContainer[01].Name="01"
classContainer[00].Name="00"
发表评论
-
程序结构--the beginning of learning CSharp
2009-10-25 14:46 0属性文件夹Properties 引用文件夹:提供项目中引用到的 ... -
C# 各种数据类型的最大值和最小值常数
2009-10-25 16:01 0<!--<br /> <br /> ... -
foreach遍历数组元素
2009-10-25 16:22 0<!--<br /> <br /> ... -
C# 类属性的访问器,get与set的定义
2009-10-25 18:50 0<!--<br /> <br /> ... -
C# 类属性的访问器,get与set传统做法,同java
2009-10-25 18:52 0<!--<br /> <br /> ... -
C#类索引器的使用
2009-10-25 22:51 0<!--<br /> <br /> ... -
静态成员
2009-10-25 23:13 0静态成员通过点运算符来访问,但是不能通过对象访问,只能通过类名 ... -
继承,用冒号实现
2009-10-25 23:33 0■构造顺序:子类对象在创建时,构造函数的调用顺序是:首先调用父 ... -
C# 函数重载
2009-10-26 14:07 0方法重载,在C#中通过虚函数来实现,具体做法:现在父类中用vi ... -
C# 函数覆盖
2009-10-26 15:57 0覆盖类成员:通过new关键字修饰虚函数表示覆盖该虚函数。 一个 ... -
C#函数委托
2009-10-26 15:59 0委托是一种动态调用函数的方式,通过委托可以将一些相同类型的函数 ... -
C#事件
2009-10-26 16:31 0■事件:事件是一种函数回调机制,它通过委托来实现函数回调。 使 ... -
C# 接口
2009-10-26 18:21 0■接口:使用关键字inte ... -
C#异常
2009-10-26 18:47 0<!--<br /> <br /> ... -
异常类Exception
2009-10-26 19:06 0<!--<br /> <br /> ... -
C# 匿名类的定义
2009-10-26 20:00 0■匿名类:匿名类用来表示临时使用的只读数据,所以必须在创建时初 ... -
程序结构--the beginning of learning CSharp
2009-10-25 14:46 500属性文件夹Properties 引用文件夹:提供项目中引用到的 ... -
C# 各种数据类型的最大值和最小值常数
2009-10-25 16:01 2849<!--<br /> <br /> ... -
foreach遍历数组元素
2009-10-25 16:22 747<!--<br /> <br /> ... -
C# 类属性的访问器,get与set的定义
2009-10-25 18:50 1642<!--<br /> <br /> ...
相关推荐
在C#编程语言中,类索引器是一种特殊的方法,允许开发者通过索引来访问类的成员,就像操作数组或集合一样。索引器使得类能够模拟数组的行为,即便其内部数据结构并非数组。这种功能极大地提高了代码的可读性和易用性...
在C#编程中,索引器是一个特殊的功能,它允许我们像访问数组那样访问类的成员,即使这些成员并不是实际的数组。索引器的概念引入是为了提供一种方便、直观的方式来访问对象的集合或序列,而无需定义特定的方法来获取...
在C#编程语言中,索引器是一种特殊的方法,它允许类或结构的实例像数组一样被访问。索引器的使用使得数据集合可以轻松地通过一个特定的键(通常是整数或字符串)来访问其元素,而无需定义显式的get和set方法。在本篇...
在C#编程语言中,索引器是一种特殊的方法,它允许类或结构的实例通过一个类似于数组的语法来访问其内部的数据。索引器的概念引入,使得开发者可以自定义对象的访问方式,使得代码更加直观和简洁。在这个“C#视频 ...
最后,理解并熟练使用C#索引器将使你的代码更易读、更直观,特别是在处理自定义数据结构时。对于初学者来说,从基础知识开始,逐渐掌握如何创建和使用索引器,是提升编程技能的重要步骤。通过实践和不断的探索,你将...
在C#编程语言中,索引器是一种特殊的方法,它允许类或结构以类似数组的方式访问其成员。索引器的使用使得数据集合可以轻松地通过下标进行访问,就像处理数组或列表一样。这对于创建自定义数据结构,如矩阵、字典或...
在C#编程语言中,索引器是一种特殊的方法,它允许我们像操作数组一样通过索引来访问类中的数据。这个特性使得自定义类型能够提供类似于数组的访问方式,增加了代码的可读性和便利性。本篇文章将深入探讨C#中的索引器...
下面我们将详细讨论C#索引器的概念、语法以及如何创建和使用索引器。 首先,索引器的定义通常在类或结构体中,且返回类型为类的实例本身,这使得我们可以连续调用索引器。例如,`this[int index]`是一个常见的索引...
"龙天下整理c#索引器的例子"是一个很好的学习资源,它通过模拟音像店的CD光盘管理来演示索引器的使用方法。 首先,我们需要理解索引器的基本语法。在C#中,索引器通常定义为类或结构的成员,使用`this`关键字作为...
在这个“C#索引器的讲解(1)”中,我们将探讨索引器的基础知识,这是分四部分系列教程的第一部分。 首先,我们需要了解索引器的基本语法。在C#中,索引器通常定义为类或结构的实例成员,并且使用`this`关键字作为...
下面我们将深入探讨C#索引器的使用: 1. **定义索引器**: 在C#中,索引器定义在类或结构中,使用关键字`this`作为返回类型的一部分。例如,一个简单的索引器可能如下所示: ```csharp public class MyClass { ...
【C#类中索引器的使用】 C#语言中,索引器是类的一个特殊成员,它使得类的对象能够像数组那样通过索引进行访问。这种特性在创建集合类或者处理复杂数据结构时尤为实用,它允许我们通过指定的键(不一定是整数)来...
总的来说,C# 索引器是实现自定义数据访问模式的重要工具,它扩展了类的灵活性,使开发者能够根据具体需求创建高效且易于使用的接口。无论是单参数还是多参数,索引器都能帮助我们更好地管理和操作类中的数据。
在这个特定的“C#在类中使用索引器Demo”项目中,我们聚焦于如何在类中利用索引器来检索数据,以及如何使用正则表达式进行数字验证。这两个知识点对于理解和开发高效的数据访问代码至关重要。 首先,让我们深入了解...
在C#编程语言中,数组和索引器是两种非常基础且重要的概念,它们在创建和操作数据集合时起着核心作用。数组是一种线性数据结构,用于存储同类型的元素集合,而索引器则提供了类似数组的访问方式,使得类的实例可以像...
C#中索引器的使用代码文件
总的来说,C#中的索引器是面向对象编程中的一个重要特性,它增强了类的灵活性和可定制性,使得对象能够以更加直观和便捷的方式处理数据。在设计集合类或者需要自定义访问机制的场景下,正确使用索引器可以显著提升...
2. **映射和字典**:C#中的`Dictionary, TValue>`类实际上就使用了索引器,允许用户通过键(Key)直接访问对应的值(Value)。 3. **数据绑定**:在Windows Forms或WPF应用程序中,索引器常用于数据绑定,使得UI组件...
在C#中,索引器的定义通常包含在类或结构体中,它们看起来很像属性,但带有参数。这些参数用于指定索引值。在提供的示例中,可以看到`IndexClass`有一个名为`this[int index]`的索引器,这意味着我们可以使用整数...
在本教程中,我们将深入探讨C#索引器的原理、用法以及最佳实践。 首先,索引器的语法与普通方法类似,但它们的定义使用了`this`关键字作为返回类型的一部分,并且通常接受一个或多个参数。这些参数代表索引值,用来...