しょっちゅうパニクるのでまとめ。
UnityのC#で動作するもの
もうちょっと色々できそうな気がする、
ジェネリックとかLINQとか追加したいなあ
メソッド→ActionかFunc→ラムダ式に変換
void OnEnable()
{
// NonArgumentNonReturn
NonArgumentNonReturn();
Action NonArgumentNonReturnAction = NonArgumentNonReturn;
Action NonArgumentNonReturnRambda = () => Debug.Log("NonArgumentNonReturnRambda");
// OneArgumentNonReturn
int x = 1;
OneArgumentNonReturn(x);
Action<int> OneArgumentNonReturnAction = OneArgumentNonReturn;
Action<int> OneArgumentNonReturnRambda = (_) => {
int y = 2;
Debug.Log("OneArgumentNonReturn=" + (_ + y).ToString());
};
// NonArgumentOneReturn
bool returnValue = false;
returnValue = NonArgumentOneReturn();
Func<bool> NonArgumentOneReturnAction = NonArgumentOneReturn;
Func<bool> NonArgumentOneReturnRambda = () => {return true;};
// OneArgumentOneReturn
returnValue = false;
returnValue = OneArgumentOneReturn(1);
Func<int,bool> OneArgumentOneReturnAction = OneArgumentOneReturn;
Func<int,bool> OneArgumentOneReturnRambda = (_) =>
{
return _ > 0;
};
}
■引数無し戻り値なし
/// <summary>
/// Nons the argument non return.
/// </summary>
void NonArgumentNonReturn()
{
Debug.Log("NonArgumentNonReturn");
}
■引数1つ戻り値なし
/// <summary>
/// Raises the argument non return event.
/// </summary>
/// <param name="x">The x coordinate.</param>
void OneArgumentNonReturn(int x)
{
int y = 2;
Debug.Log("OneArgumentNonReturn=" + (x + y).ToString());
}
■引数なし戻り値1つ
/// <summary>
/// Nons the argument one return.
/// </summary>
/// <returns><c>true</c>, if argument one return was noned, <c>false</c> otherwise.</returns>
bool NonArgumentOneReturn()
{
Debug.Log("NonArgumentOneReturn");
return true;
}
■引数1つ戻り値1つ
/// <summary>
/// Raises the argument one return event.
/// </summary>
/// <param name="numericalValue">Numerical value.</param>
bool OneArgumentOneReturn(int numericalValue)
{
Debug.Log("OneArgumentOneReturn");
return numericalValue > 0;
}