请问在一个类中怎么实现这样的属性例如:mything["ok"],即取得集合mything其中元素ok的值得??

sqlnew 2006-10-25 06:35:42
请问在一个类中怎么实现这样的属性例如:mything["ok"],即取得集合mything其中元素ok的值得??
语法要怎么定义这个mything,而这个ok这个里面的值得要在哪里定义?,请大家说说看,谢谢。
...全文
130 16 打赏 收藏 举报
写回复
16 条回复
切换为时间正序
请发表友善的回复…
发表回复
sqlnew 2006-10-25
  • 打赏
  • 举报
回复
嗯,好的,谢谢大家。给分了。
aafshzj 2006-10-25
  • 打赏
  • 举报
回复
和普通方法的overload是一样的啊,普通方法也可以定义多个同名的,只要参数类型和顺序组合不完全一样就可以。
sqlnew 2006-10-25
  • 打赏
  • 举报
回复
如果我用overload来,可以进行多个定义吗?就是每个的输入的变量类型不同?
dugupiaoyun 2006-10-25
  • 打赏
  • 举报
回复
说白了,你不懂就多看看书,看索引指示器这章讲的什么
sqlnew 2006-10-25
  • 打赏
  • 举报
回复
还是说只能有两个定义,一个是字符串,一个是int?
sqlnew 2006-10-25
  • 打赏
  • 举报
回复
this可以用多个来定的吗?会不会有冲突的
aafshzj 2006-10-25
  • 打赏
  • 举报
回复
public object this[string name]
{
get
{
}
set
{
}
}

public object this[int index]
{
get
{
}
set
{
}
}

并存就可以。和方法的overload是一样的。一个参数是string,一个是int。
aafshzj 2006-10-25
  • 打赏
  • 举报
回复
因为有两个this方法声明和定义啊
sqlnew 2006-10-25
  • 打赏
  • 举报
回复
就是既可以mything["ok"] 又可以mything[5]
sqlnew 2006-10-25
  • 打赏
  • 举报
回复
他们怎么可以同时使用呢??
aafshzj 2006-10-25
  • 打赏
  • 举报
回复
public object this[int index]
{
get
{
}
set
{
}
}
sqlnew 2006-10-25
  • 打赏
  • 举报
回复
再请问,好像ado.net的数据表元素,除了可以用字段名访问外例如:mything["ok"] 而且她可以用序号来访问,例如 mything[5] ,这个应该怎么做?
aafshzj 2006-10-25
  • 打赏
  • 举报
回复
public class mything
{
private Hashtable _list = new Hashtable();
public object this[string name]
{
get
{
retunr _list[name];
}
set
{
_list[name] = value;
}
}

}
shalen520 2006-10-25
  • 打赏
  • 举报
回复
以下示例说明如何声明私有数组字段、myArray 和索引器。通过使用索引器可直接访问实例 b[i]。另一种使用索引器的方法是将数组声明为 public 成员并直接访问它的成员 myArray[i]。
// cs_keyword_indexers.cs
using System;
class IndexerClass
{
private int [] myArray = new int[100];
public int this [int index] // Indexer declaration
{
get
{
// Check the index limits.
if (index < 0 || index >= 100)
return 0;
else
return myArray[index];
}
set
{
if (!(index < 0 || index >= 100))
myArray[index] = value;
}
}
}

public class MainClass
{
public static void Main()
{
IndexerClass b = new IndexerClass();
// Call the indexer to initialize the elements #3 and #5.
b[3] = 256;
b[5] = 1024;
for (int i=0; i<=10; i++)
{
Console.WriteLine("Element #{0} = {1}", i, b[i]);
}
}
}
输出
Element #0 = 0
Element #1 = 0
Element #2 = 0
Element #3 = 256
Element #4 = 0
Element #5 = 1024
Element #6 = 0
Element #7 = 0
Element #8 = 0
Element #9 = 0
Element #10 = 0
shalen520 2006-10-25
  • 打赏
  • 举报
回复
ms-help://MS.MSDNQTR.2003FEB.2052/csref/html/vclrfindexedpropertiespg.htm
aafshzj 2006-10-25
  • 打赏
  • 举报
回复
public object this[string name]
{
get
{
}
set
{
}
}
发帖
C#

10.8w+

社区成员

.NET技术 C#
社区管理员
  • C#
  • Web++
  • by_封爱
加入社区
帖子事件
创建了帖子
2006-10-25 06:35
社区公告

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