在C#中如何实现索引器?

Q419264326 2009-11-05 02:07:41
我按照书上的内容作了,可是,那个,用字符串做的索引不能识别:下面贴出部分代码,希望各位大虾指点下,谢谢啦, 嘿嘿

//索引器所在的类。
class MyClass
{
private string name;

public string Name
{
get { return name; }
set { name = value; }
}
private Student[] students=new Student[3];

internal Student[] Students
{
get { return students; }
set { students = value; }
}
public MyClass()
{


students[0] = new Student("Mcgrady", "basketball");
students[1] = new Student("Bryant", "cooking");
}
public Student this[int index]
{
get { return students[index]; }
}
public Student this[string name]
{
get
{
int i;
bool found = false;
for (i = 0; i < students.Length; i++)
{
if (students[i].Name == name)
{
found = true;
break;
}
}

if (found)
{
return students[i];
}
else
{
return null;
}
}
}

}


//索引元素的类。
class Student
{
private string name;

public string Name
{
get { return name; }
set { name = value; }
}
private string hobby;

public string Hobby
{
get { return hobby; }
set { hobby = value; }
}
public Student(string name, string hobby)
{
this.name = name;
this.hobby = hobby;
}
}
//测试类。
class Program
{
static void Main(string[] args)
{
MyClass mc = new MyClass();
Console.WriteLine(mc.Students[0].Name);
Console.WriteLine(mc.Students["Bryant"].Hobby);
}
}
//报错语句
错误 1 无法将类型“string”隐式转换为“int” D:\Shot\IndexTest\IndexTest\Program.cs 13 43 IndexTest




谢谢大家了, 困扰我很久了呀,
...全文
276 3 打赏 收藏 转发到动态 举报
写回复
用AI写文章
3 条回复
切换为时间正序
请发表友善的回复…
发表回复
Q419264326 2009-11-05
  • 打赏
  • 举报
回复
。 public Student this[string name]
。 是呀, 我是这么做的, 有一个, bryant 我用了 不行, 不知为嘛, 索引器 重载不能成功, 汗, 一周了, 我就这么干的, 说清楚哇, 谢谢啦, 嘿嘿
Jave.Lin 2009-11-05
  • 打赏
  • 举报
回复
忘记说一下,你发问题,如果还是赏分为0,估计没多少人会给你回答。
Jave.Lin 2009-11-05
  • 打赏
  • 举报
回复
static void Main(string[] args)
{
MyClass mc = new MyClass();
Console.WriteLine(mc.Students[0].Name);
Console.WriteLine(mc.Students["Bryant"].Hobby);
}

你还不明白索引器的用法。以上代码应该改为:

static void Main(string[] args)
{
MyClass mc = new MyClass();
Console.WriteLine(mc["你要索引的字符下标"].属性);
Console.WriteLine(mc[0].属性);
}

110,536

社区成员

发帖
与我相关
我的任务
社区描述
.NET技术 C#
社区管理员
  • C#
  • Web++
  • by_封爱
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

让您成为最强悍的C#开发者

试试用AI创作助手写篇文章吧