<br><br><div class="gmail_quote">On Tue, May 12, 2009 at 7:16 PM, å×ÇÅÎÉÊ çÒÉÛÕÌØ <span dir="ltr">&lt;<a href="mailto:eugeny.grishul@gmail.com">eugeny.grishul@gmail.com</a>&gt;</span> wrote:<br><blockquote class="gmail_quote" style="border-left: 1px solid rgb(204, 204, 204); margin: 0pt 0pt 0pt 0.8ex; padding-left: 1ex;">
<div class="im"><div>&gt;Do you mean:<br>
&gt;<br>
 &gt; š šstruct MyBase {<br>
 &gt; š š}<br>
&gt;<br>
 &gt;š š struct Derived {<br>
 &gt;š š š š MyBase xxx;<br>
 &gt;š š š š foo bar;<br>
 &gt; š š}</div><div></div></div><div>///===================</div><div></div><div>No, I mean:</div><div></div><div>struct NSObject { // for base classes in Objc hierarchy we holds pointer to Objective-C object in C# proxy</div>

<div>š š public IntPtr _handle;</div><div>š šš</div><div>š š public void SomeMethodAvailableForDerivedStructs() { somePInvoke( _handle ); }</div><div>}</div><div></div><div>struct SomeBaseObjcProxy : NSObject { // that not available in C#, but such inheritance work well on CLR (MS VES implementation)</div>

<div>š š public void AnotherMethodAvailableForDerivedStructs() { somePInvoke( _handle ); } // note that &quot;_handle&quot; is field of NSObject</div><div>}</div><div></div><div>///===================</div><div></div><div>

In raw Objective-C you can&#39;t work with OBJECTS directly but can work with them via POINTERS to OBJECTS. My approach - is represent such pointers via structs with size of such pointer. Creating classes ( mobjc,monobjc,cocoa# ) for such case leads to unnecessary GC overheads, structs there perform better.</div>

<div></div><div>///===================</div></blockquote><div><br>This is not accurate, since your approach box the valuetypes, they impose the same overhead as reference types. The MS runtime supports this by accident, as this is not something defined my the ECMA standard and is type unsound.<br>
<br><br><br></div></div>