こんにちは、C# のコードを削減するのを手伝ってもらえますか? 私はこのような関数をたくさん持っています。後で送信するパラメーター関数を使用して 1 つの関数のコードを削減したいと考えています。
public void WriteTransportCurrectCategoryTypes()
{
var jStr = GetJSONString("GetBusTypes");
var jArr = JArray.Parse(jStr);
var tTypes = new List<TransportCurrentCategoryType>();
foreach (dynamic d in jArr)
{
var tType = new TransportCurrentCategoryType();
ParseTransportCurrentCategoryType(tType, d);
tTypes.Add(tType);
}
}
public void WriteBusModelSpecs()
{
var jStr = GetJSONString("GetBusModelSpecs");
var jArr = JArray.Parse(jStr);
var specs = new List<Characteristic>();
foreach (dynamic d in jArr)
{
var spec = new Characteristic();
ParseBusModelSpecs(spec, d);
specs.Add(spec);
}
}
ジェネリックでデリゲートを使用しようとしましたが、うまくいきません
public delegate void ParseParameters<T>(T objectClass,dynamic a);
private static void ParceBusClass(BusClass busClass,dynamic a)
{
busClass.Name = a.Name;
busClass.Transport = new TransportCategory {Id = a.BusModelCategoryId};
}
それから私はそれを呼びます:
GetCollectionFromJSON<BusClass>("", ParceBusClass);
private static List<T> GetCollectionFromJSON<T>(string functionName, ParseParameters<T> parseFunk){
/****/
parseFunk<T>(busClass, a);
/***/
}
エラーがかかります、