You can make it static or use the Singleton design pattern. I would use the Singleton.
No need to pass the reference around, the Singleton provides a global access point.
Example:
public class Singleton
{
private static Singleton instance;
private Singleton()
{}
public static Singleton GetInstance()
{
if(instance == null)
instance = new Singleton();
return instance;
}
}
Private constructor and the GetInstance()
function ensure there is only one instance of the object.
If you ever need to get the reference to the object to call a function inside the object just use this:
Singleton.GetInstance().FunctionName();
Also, this is lazy instantiation and not thread safe(multi-threaded programs), but you can learn more about that on your own, it should be fun!