title: implicit operator on generic types
body: <p>Is there anything wrong with using an implicit operator like the following:</p>
  
  <pre><code>//linqpad c# program example
  void Main()
  {
      var testObject = new MyClass&lt;int&gt;() { Value = 1 };
  
      var add = 10 + testObject; //implicit conversion to int here
      add.Dump(); // 11
  }
  
  class MyClass&lt;T&gt;
  {
      public T Value { get; set; }
      public static implicit operator T (MyClass&lt;T&gt; myClassToConvert)
      {
          return myClassToConvert.Value;
      }
  }
  </code></pre>
  
  <p>I was thinking I could treat as instance of the object as a value type this way, but seeing as I've never seen an example of this I thought maybe there was a reason <em>not</em> to do something like this that someone could point out?</p>
  
  <p>In my actual code I was thinking of doing this as part of a data abstraction layer, so that I could return objects with information describing the underlying data, but allow the logic code to treat it as a value type when all it needs to know about is the value, and at the same time keep it all nice and type safe with the generics.</p>