title: When referencing an object, does it always have to be passed as a parameter
body: <p>I have a question about how 2 separate instances of classes can know about each. </p>
  
  <p>Let's assume I have an empty console app and I've added 2 classes, in 2 separate namespaces.</p>
  
  <p>Details of each class are not important, so please consider this very simple code from my Console Application Program. </p>
  
  <pre><code>public static void Main(string[] args)
  {
      Namespace1.ClassName = c = new Namespace1.ClassName();
      Namespace2.ClassName2 = c2 = new Namespace2.ClassName2();
  }
  </code></pre>
  
  <p>Now, unless I pass an instance to (for example) the constructor of my ClassName2 then <code>c2</code> will have no knowledge of <code>c</code> EG</p>
  
  <pre><code>Namespace2.ClassName2 = c2 = new Namespace2.ClassName2(c);
  </code></pre>
  
  <p>is there any other way for <code>c2</code> to have knowledge of <code>c</code> without <code>c</code> being passed as a parameter or set as a property of <code>c2</code>.</p>
  
  <p>I assume not, but I've been wrong so many times I am just after clarification. I am looking for a simple yes or no answer mainly, but any other details are also appreciated. </p>