im trying to use TryGetValue.
to Invoke a delegate inside Method i use dictionary to select one delegate and then Invoke it.
the dictionary type is
Dictionary<string, Action<Mesh>> _meshActions;
and the action type is
Action<Mesh>
So here it seems i can not declare action in delegate parameter correctly.
        Method(null, "mesh", ( action => //How to specify type of action
        {
            _meshActions.TryGetValue(_reader.LocalName, out action);
            try { action(mesh); }
            catch 
            {
                //do nothing 
            }
        }));
Compiler expects out be type of Action<Mesh> but how can i set the action type?
before using TryGetValue i used dictionary normally
but because sometimes i got error for Key not found so i decided to use TryGetValue
this is the code without TryGetValue and works fine if all Keys find.
Method(null, "mesh", () => _meshActions[_reader.LocalName](mesh));
Edit: note that action is nothing outside delegate. i just want to send parameter inside TryGetValue and use its resault.
and here is the Method
    private static void Method(string enterElement, string exitElement, Action loadElement)
    {
        while (_reader.Read())
        {
            if (StateElement(State.Enter, enterElement))
            {
                loadElement.Invoke();
            }
            else if (StateElement(State.Exit, exitElement))
            {
                return;
            }
        }
    }
				
                        
actionneeds to be declared locally in the delegate, not as a parameter.