"The only major difference I see is that C# can use pointers within blocks marked "unsafe". That shouldn't make any difference for business applications, but it's good to have this option when you need it. That's why a lot of commercial components are probably written in C#. "
Interesting point...while I used pointers all the time in C, I haven't have a need for them at all in C#. One reason is because of (again) the rich framework. (Simple example, take the string class and all that it provides).
I recently pulled down (from the CodeProject) something written in C# to do explorerbars. While I have a third-party control to do explorerbars, I wanted to see if the stuff from codeproject provided the same functionality.
It did, but it was quite sluggish. So your point is well taken - for application developers, pointers are probably going to be used infrequently, but for toolmakers, they're probably still critical.
Good discussion...
Kevin