Difference between normal and dynamic delegates.

I wanted to know the difference between dynamic delegates and normal delegates and how differently do they work.

I have delegate that needs to call different functions at different times.
I have used a normal delegate there.

But I do something like this when it needs to call a different function


void UBaseCharacterMovementComponent::OrientRotation(FRotationChangeDelegate &CallingRotationDelegate)
{
	RotationChangeDelegate = CallingRotationDelegate;
}

The delegate just needs to call a single function so I am sure using multicast delegate is not needed here. I wanted to know if this is the way to do something like this.