C# içinde sayısal bir ayrım yapan bir işlev yazdım. Bu şuna benzer: Ben (? Belki) delegeleri ile bu mümkün olduğunu düşünüyorumC# Geçiş İşlevi İşlevini Geçme
public double Diff(double x, function f)
{
double h = 0.0000001;
return (f(x + h) - f(x))/h;
}
ama değilim: Ben gibi herhangi işlevinde geçmek mümkün olmak istiyorum
public double Diff(double x)
{
double h = 0.0000001;
return (Function(x + h) - Function(x))/h;
}
bunları nasıl kullanacağından emin olabilirsiniz.
Herhangi bir yardım büyük memnuniyetle karşılanacaktır.
3.5 ve üstü olarak, Func <> ve delegeler birbirleriyle değiştirilebilir ve bu, anonim delege ve lambdaların (anonim delege için sözdizimsel şeker olan) kullanılabileceği anlamına gelir. Bu yüzden parametreyi Func veya double yapan ve double yapan bir temsilci olarak belirleyip belirlemediğiniz farketmez. Adlandırılmış bir temsilci tarafından sağlanan tek gerçek avantaj, xml-doc yorumlarının eklenmesidir; Tanımlayıcı isimler, tür yerine parametre adı kadar kolay uygulanır. –
KeithS
Yöntem prototipinin kodu Func'dan daha okunabilir hâle getirdiğini iddia ediyorum - yalnızca kodun okunabilir olmasını ve lambdaları kodun içinden geçirmenizi engellemediğinizi söylediğiniz gibi adlandırmak değil. –
Delege türünün isimlendirmesi kod açıklığı için çok önemliyse, çoğu durumda bir arabirime ve uygulamalara yöneleceğimi düşünüyorum. –