Confusión sobre las expresiones delegadas y lambda `Action`

private void StringAction(string aString) // method to be called
{
    return;
}

private void TestDelegateStatement1() // doesn't work
{
    var stringAction = new System.Action(StringAction("a string"));
    // Error: "Method expected"
}

private void TestDelegateStatement2() // doesn't work
{
    var stringAction = new System.Action(param => StringAction("a string"));
    // Error: "System.Argument doesn't take 1 arguments"

    stringAction();
}

private void TestDelegateStatement3() // this is ok
{
    var stringAction = new System.Action(StringActionCaller);

    stringAction();
}

private void StringActionCaller()
{
    StringAction("a string");
}

No entiendo porqueTestDelegateStatement3 trabaja peroTestDelegateStatement1 falla En ambos casos,Action Se suministra con un método que toma cero parámetros. Que puedellamada un método que toma un solo parámetro (aString), pero eso debería ser irrelevante. No toman un parámetro. ¿No es posible hacer esto con las expresiones lamda, o estoy haciendo algo mal?

Respuestas a la pregunta(4)

Su respuesta a la pregunta