&&
иногда называют оператором guard .
variable = indicator && value
его можно использовать, чтобы установить значение, только если индикатор правдоподобен.
Почему Вы хотите создать тип делегата в рамках метода? Что случилось с объявлением его вне метода? В основном Вы не можете сделать этого - Вы не можете объявить тип (никакой вид типа) в рамках метода.
Одна альтернатива должна была бы объявить всех универсальных делегатов Func/Action, которые присутствуют в.NET 3.5 - затем Вы могли просто сделать:
public void MyMethod(){
Func<int, int, int> mySumImplementation =
delegate (int a, int b) { return a+b; };
Console.WriteLine(mySumImplementation(1,1).ToString());
}
объявления находятся на моем страница .
C#/.NET VersionsДелегат тип должен быть определен вне функции. Фактический делегат может быть создан в методе, как Вы делаете.
class MyClass {
delegate int Sum(int a, int b);
public void MyMethod(){
Sum mySumImplementation=delegate (int a, int b) {return a+b;}
Console.WriteLine(mySumImplementation(1,1).ToString());
}
}
было бы допустимо. Лучшее решение может состоять в том, чтобы эмулировать.NET3.5 и создать некоторые универсальные типы делегата глобально, которые могут использоваться на всем протяжении Вашего решения, чтобы избегать необходимости постоянно повторно объявлять типы делегата для всего:
delegate R Func<R>();
delegate R Func<T, R>(T t);
delegate R Func<T0, T1, R>(T0 t0, T1 t1);
delegate R Func<T0, T1, T2, R>(T0 t0, T1 t1, T2 t2);
Затем можно просто использовать Func<int, int, int>
делегат в коде выше.