> I think the main issue here is that teh DirectX API (which > this was about in the beginning) does not pass the structy by ref. > > Looks like a tremendous oversight to me. > > The rest then is basically a logical extension of standard > .NET semantics (structs copied onto stack) and not perfect > optimizations (that are also not really wanted). > > Has anyone a clue whether there may be a reason they are not > defined as ref?
Because the DX api is a COM api, which works with objects and pointers, something you can mimic with classes in C# and references to objects. Structs in .NET should, correct me if I'm wrong, be used to create somewhat specialized value types, like a 'Coordinate', and then also just for .NET, not for COM interop. Because there are some drawbacks on structs, like manipulating them in a boxed situation (array list for example) is cumbersome, it's IMHO best to use classes instead of structs, especially when it comes to DX interop. FB =================================== This list is hosted by DevelopMentor® http://www.develop.com Some .NET courses you may be interested in: NEW! Guerrilla ASP.NET, 17 May 2004, in Los Angeles http://www.develop.com/courses/gaspdotnetls View archives and manage your subscription(s) at http://discuss.develop.com