title: Clases with partiarly shared Propeties, Methods. How to avoid duplication of code?
body: <p>I have three classes: <code>InputSocket</code>, <code>InternalSocket</code>, <code>OutputSocket</code>. They all inherit from <code>BaseSocket</code> with implements <code>ISocket</code> interface, where I have common code for all classes and this part works fine, I have problem with partially shared code.  </p>
  
  <p><code>InputSocket</code> and <code>InternalSocket</code> shares Parsing part with <code>OutputSocket</code> does not have.</p>
  
  <p><code>InputSocket</code> and <code>OutputSocket</code> shares GUI part with <code>InternalSocket</code> does not have.</p>
  
  <p>I'm looking for a way to share common parts of code between <code>InputSocket</code> / <code>InternalSocket</code> and <code>InputSocket</code> / <code>OutputSocket</code>. Code with consist of methods and parameters. 
  I already tried using multiple interfaces but it didn't solve the problem, well it made it a little more manageable. When I create <code>IParsable</code> for <em>parsing part</em> and <code>IExternal</code> for <em>Input/Output common part</em>, then I need to create <code>IParsableSocket</code> for <code>InternalSocket</code> <code>IParsableExternalSocket</code> for <code>InputSocket</code> and <code>IExternalSocket</code> for <code>OutputSocket</code>. It does not change the point that I still need to implement code for every case, with leads to code duplication. </p>
  
  <p>Unfortunately there is no way for <code>InputSocket</code> to inherit from <code>OutputSocket</code> and <code>InternalSocet</code> at the same time in c#. </p>
  
  <p>Is there an alternative, to copy/paste of code or making an general Socket class with bunch of if logic and nulls?</p>