how to pass values through action

I’ve saw many times:

  • Action is a delegate (pointer) to a method, that takes zero, one or more input parameters, but does not return anything.

and now when I wanted to simplify things to make an action instead of constantly calling get component, … and just pass the ref to action and later use it, … I came in to a wall, …

	Action Func;
	void Test(){
		Func = Test1;
//		Func(/*I thought I declare it what to pass in here*/); // even without this line I get 2 errors
	}
	void Test1(bool bol){
		
	}

and this 2 errors are that I get:

error CS0123: A method or delegate `GUI3DCursor.Test1(bool)' parameters do not match delegate `System.Action()' parameters
error CS0428: Cannot convert method group `Test1' to non-delegate type `System.Action'. Consider using parentheses to invoke the method

BUT if I remove bool I get none errors

void Test1(){

so what should I do to make it able to accept anything for an action?

You want an Action< Type >:

void Hello(int num)
{
    Debug.Log("Hello " + num);
}

void Run()
{
    Action<int> hi = Hello;
    hi.Invoke(5);
}