当条件(pred)对其一个类成员(值)成立时,我想更新一个对象列表(mycapsule,还有许多其他成员)。每当我改变某件事时,另一件事就失败了,我是 C# 的新手,真的很困惑。有人可以修复我的代码吗:在最好的情况下,我只会收到此错误,但我认为我的代码中缺少很多东西
The type or namespace name `T' could not be found. Are you missing a using directive or an assembly reference?
这是我的代码
using System;
using System.Collections.Generic ;
namespace test
{
class MainClass
{
public static List< mycapsule<int,double> > sample= new List< mycapsule<int,double>>();
public static void Main (string[] args)
{
sample.Add(new mycapsule<int,double> {id=1 , value= 1.2});
update(pred, 12.3);
}
public static bool pred(double x)
{
if (x==2.5) return true;
return false;
}
public class mycapsule<KT, T>
{
public KT id {get ; set; }
public T value { get ; set; }
public int p; // and more
}
public bool update(Func<T, bool> predicate, T i)
{
foreach (var x in sample.FindAll(item => predicate(JustValue(item))) )
{
x.value = i ;
}
return true ;
}
public T JustValue(mycapsule<int,T> i)
{
return i.value;
}
}
}