C# and the new keyword

I have a script that calls something like this:
TouchClass touchClass = new TouchClass(touch);

I get a warning:

Well… It works. Whenever I touch the screen I get an instance of the touch class. What are the pitfalls of doing code this way in Unity?

When you new a MonoBehaviour in stead of using AddComponent, the instance will be created just fine. However no events will be sent to it and coroutines will not work on it.

Why not just follow the suggestions in the error message?

does TouchClass actually need to inherit from MonoBehaviour?