William Chops Westfield wrote: > What you're asking is really more about going from a "procedural" > language like C (especially on embedded systems) to an "object oriented" > language like C++ or C# or Java, rather than the specifics of C# itself, > I think. That's probably a harder question; and I'm not sure there are > any books that address the philosophical differences (I'm not sure that > there's wide consensus on what the differences SHOULD be.) I do not consider myself an expert programmer, but I have written simple programs in VC++ and Java, and more serious programs in Delphi. The concepts of classes, objects, properties, methods, et cetera are virtually the same in all three -- and I would expect the same to be true for any OO language. Any good beginners book on C# would teach OOP as well, so that's where I'd start. As with anything, it really helps to have a project in mind -- then you can dive in once you learn the basics, and learn the rest as you go, on an "as-needed" basis. > My > observation > and perception (as a non OO-programmer) is that a lot of the advantage > of > OO is being able to export much more complex programatic APIs (via > things > like classes), and that a lot of "modern user application programming" > is > more about finding existing (look-and-feel compatible) classes/etc than > actually writing new code. And a lot of the "writing new code" guidance > is aimed at producing exportable and/or reusable classes. To me, OOP feels a lot more intuitive because you have an object that has properties, and can do stuff -- analogous to the real world. I like to abstract things as much as possible, hiding the "guts" inside an object, and only exposing a clean interface to the outside world. Code reuse is one of the benefits of OOP -- instead of reinventing the wheel, you can grab a wheel that someone else has invented, and modify it to your liking ("inherit") without having to reinvent it from scratch. Code reuse is harder with procedural programs. I've read somewhere that the practical limit of a program written in a procedural language, that any one programmer can understand as a whole, is about 100K lines. With OOP, that limit is increased to abot 1M lines. Now, I'm not sure how the people who did the research arrived at those numbers, but they make sense to me, based on my experience. Vitaliy -- http://www.piclist.com PIC/SX FAQ & list archive View/change your membership options at http://mailman.mit.edu/mailman/listinfo/piclist