日期:2014-05-19  浏览次数:20713 次

C#属性或方法问题(高分求救)
怎么定义如下这种属性或是方法
 

      就像记录集中的  
      RecordSet.Value( "el_no ")= "ABCD "
      传两个参数     第一个是一个字串,   栏位名称,   一个是值   用后面的等号
      也可以得到这个栏位的值
      string   aa   =   RecordSet.Value( "el_no ")
      请问这种怎么实现.   不管是用方法还是属性都可以


------解决方案--------------------
从你给的代码片断来看RecordSet.Value( "el_no ")很明显是一个静态的方法,当然也可能是实例的方法,总之是一个方法,那么string aa = RecordSet.Value( "el_no ");这样的调用就很正常了,至于前面一个:RecordSet.Value( "el_no ")= "ABCD ",我到是没有反应过来,是什么意思也从来没有这么用过感觉是错的,但和这个写法类似的有索引器.

a[ "el_no "]= "ABCD ";

不知道说对多少.
------解决方案--------------------
RecordSet.Value( "el_no ")= "ABCD "这个不像方法,也不像索引属性,不过从你说的来看,应该是索引属性.在类视图点击要添加索引属性的类,选择添加索引器,根据提示就可以添加一个最简单的过程属性。
------解决方案--------------------
这应该是一个方法和一个赋值语句的组合吧,方法返回对象然后为其赋值?
不过根据你的应用目的来说,最好的解决办法就是索引器了。
就如1楼所说的:a[ "el_no "]= "ABCD ";

http://msdn2.microsoft.com/zh-cn/library/6x16t2tx(VS.80).aspx
------解决方案--------------------
继承CollectionBase或DictionaryBase类!
可以实现你要的!
------解决方案--------------------
Private Shared hst As New Hashtable

Public Shared Property h(ByVal s As String) As String
Get
Return hst(s)
End Get
Set(ByVal Value As String)
hst(s) = Value
End Set
End Property
------解决方案--------------------
vb的代码,但是原理是一样的
------解决方案--------------------
public Class MyRecordSet
{
private StringDictionary sd=new StringDictionary();
public MyRecordSet(){}
public StringDictionary Value
{
get{return sd;}
}
}
这个回答够简单了吧!
------解决方案--------------------
你要写索引是吧?
写个简单的你看下
public class temp
{
private string[] items;
public string this[int index]
{
get{return items[index];}
set{items[index]=value;}
}