대리자를 참조하기 위해 사전을 사용하려고하는데 위임 포인터를 가져 오려고 시도 할 때 오류가 발생합니다. 더 많은 문맥에 대해 C 구조체의 값을 검색하는 데 사용할 문자열이 제공되고 있습니다. C 구조체에서 데이터를 가져 오거나 설정하는 메서드를 작성했지만 이제는 문자열이 주어진 메서드를 호출해야합니다. 네가 더 좋은 길을 알고 있다면 나에게 알려줘.iDictionary에서 반환 된 대리인을 얻으려면 어떻게해야합니까?
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
namespace TestCode
{
public class tuboFillLinePresets
{
public IDictionary<string, object> DBLookup { get; set; }
public config_data Data;
delegate float MyDel(int chan);
public float ChanGain(int chan)
{
return Data.ChannelGain(chan);
}
public float MagCurr(int chan)
{
return Data.MagCurrent(chan);
}
public tuboFillLinePresets()
{
DBLookup = new Dictionary<string, object>();
MyDel cg = new MyDel(ChanGain);
MyDel mc = new MyDel(MagCurr);
DBLookup.Add("HBGain", cg);
DBLookup.Add("LBGain", cg);
DBLookup.Add("MagCurrent", mc);
}
public LinePresets tuboGetLinePresets(LinePresets LinePresets)
{
foreach (var item in LinePresets.Parameters)
{
String s = item.Key;
MyDel func;
DBLookup.TryGetValue(s, out func); // error here
LinePresets.Parameters[s] = func(3);
}
return LinePresets;
}
}
}
무엇이 오류입니까? –