我想將一個lambda函數添加到Func<T>
。此外,我希望返回的值是第一個lambda委託的值(我不能首先更改第一個總是首先應用的順序)。當我嘗試用+=
語法要做到這一點,我得到如下:將多個代理添加到Func <T>並返回第一個lambda委託(C#)的結果?
錯誤44運算符「+ =」不能應用於類型爲「
System.Func<TEntity>
」和「lambda表達式」
怎樣的操作數我可以達到上述目的嗎?如果可能,我真的想避免使用傳統的委託語法。
class Transaction
{
static Func<TEntity> ifNullInitializeWithThisReturnedObject =() => default(TEntity);
public static bool IsDirty { get; private set; }
public init (Func<TEntity> IfNullInitializeWithThisReturnedObject)
{
ifNullInitializeWithThisReturnedObject = IfNullInitializeWithThisReturnedObject;
}
public void somemethod()
{
ifNullInitializeWithThisReturnedObject +=() =>
{
IsDirty = true;
return default(TEntity);
};
}
}
你能展示一些更多的代碼嗎? – user7116
與問題無關,但您確定您的init方法正確嗎?你不應該交換任務的r/l嗎? –
我沒有看到問題應該在這裏。應該編譯。 – nawfal