Skip to content
Scan a barcode
Scan
Paperback Effective C# (Covers C# 4.0): 50 Specific Ways to Improve Your C# Book

ISBN: 0321658701

ISBN13: 9780321658708

Effective C# (Covers C# 4.0): 50 Specific Ways to Improve Your C#

(Part of the Effective Software Development Series)

Select Format

Select Condition ThriftBooks Help Icon

Recommended

Format: Paperback

Condition: Very Good

$8.99
Save $41.00!
List Price $49.99
Almost Gone, Only 1 Left!

Book Overview

In Effective C#, Third Edition, respected .NET expert Bill Wagner identifies 50 ways to harness the full power of the C# 6.0 language to write exceptionally robust, efficient, and well-performing... This description may be from another edition of this product.

Customer Reviews

5 ratings

`

This book is the difference between a programmer who knows C# and becoming a true C# "craftsman". Absolutely recommended!

Excellent Book for any C# Developer

If you've already written some code in C#, you have to buy this book. It is focused on coding, and its examples get right to the point by including only code on the topic at hand. Each item is clearly labeled in the table of contents and if you want to use it as a reference, it works for that, but it is easy to read from cover to cover, too. Don't make this your first C# book, but don't wait long after you write your first bit of C# code to make it yours. I am a critical reader of grammar and spelling, and (unlike a previous reviewer)I didn't find the grammar and spelling distracting.

A **must buy** for any C# developer

This book is a revelation. If you want to improve your code, you need this book. Bill Wagner's advice is directly contradictory to what you'll find on the web, but unlike the so-called experts that write those fluffy articles that you find in Google searches, he can actually prove his assertion via ILM disassembly. For instance, he supports the use of the foreach statement, and tells and _shows_ you exactly why it's the best way to iterate over an aggregate, as opposed to the old for statement, which he also proves is the _worst_ way to do an iteration. There are minor quibbles here and there (he occasionally contradicts his own advice in his examples), and I seriously disagree with his recommendation of the DataSet over using your own custom collection classes. But, hey, you're never going to agree with everything an author has to say, and out of 50 suggestions I can live with one that I don't agree with. Just buy the book and revel in his genius.

Not the Book I Was Expecting

FULL DISCLOSURE: I know Bill Wagner pretty well, and consider him a friend. I don't think that has colored this review, but you have a right to know. (If you doubt my objectivity, consider that I have now purchased TWO copies of this book, even though I probably could have gotten one or two for free. It's worth it!) Back when I was a C++ programmer, there was one book everyone said I simply had to read: Effective C++ by Scott Meyers. And they were right: when I read that book, I summarized it as "Here are 50 mistakes you're making in your C++ code right now, and you don't even know it." (Note: the latest edition has been expanded to 55 mistakes.) So now that I'm a C# programmer, I eagerly looked forward to Effective C# (edited by Meyers), because I wanted that same sort of "Aha!" enlightenment. Well, Bill Wagner failed to deliver that enlightenment. But that's a good thing, actually, and something he couldn't help. But to understand why, we have to return to Scott Meyers. After the 50 amazingly simple improvements in Effective C++, Meyers wrote More Effective C++; and I characterized that book as, "35 really deep subjects that you have to think about and understand. Some of them will apply to your work. Some of them won't. None of them will be easy. But you really have to think about them." See, Meyers covered all the simple, universal problems in his first book, making it darned hard to make any simple, obvious C++ mistakes. That meant his second book had to cover deeper design concerns, many of which apply only in particular circumstances. And herein lies the difference for Wagner's book. See, a generation of C++ programmers learned and internalized Meyers's lessons -- including the Microsoft team who created the C# language. When they built their C++-inspired (and Java-inspired) language, they built in a lot of the safeguards and limits that Meyers advocated as a standard practice for C++. They also built in best practices from other sources. So it's my contention that the C# equivalent to Effective C++ can't really be written. The language won't allow it. So what Wagner has written really falls somewhere between Effective C++ and More Effective C++. There are some simple "Aha!" tips; but there are a lot more deep design concerns. That's really what the C# programmer needs, after all; and that's what Wagner delivers in a very fine fashion. Now Wagner can explain these topics better than I can, so I'm not going to try. But I do want to comment on the items I found most useful: 5. Always provide ToString(). Your maintenance and client coders will thank you. 15. Utilize using and try/finally for Resource Cleanup. And 18. Implement the Standard Dispose Pattern. .NET pretty much solves memory leaks; but memory is only the most commonly leaked resource. And in solving memory leaks, they made it harder to manage certain other resources. In these two items, Wagner shows how to do the best job you can. I wish I could say I was following every

Helps you transition from an intermediate to expert in C#

I used C++ as my primary language for years. At first, most of the books I read were on the mechanics and rules of the language. Then, books like Effective C++ came along that describe many of the complications you will run into as you use it and provide good guidelines. There are many books out there on the mechanics of C# and the .NET framework. However, the language is not yet mature and everyone is still figuring out the best way to use it. Effective C# identifies many issues that you'll run into as a C# developer along with guidelines on how to deal with the issues. As an example, it discusses GetHashCode(), which might seem simple to implement on the face of things, but there are a bunch of complexities. It also have many good topics on issues that arise with value types vs. reference types, like boxing and unboxing. There is a great breadth of topics. I think almost everyone will learn something from this book. I wish there was more coverage of exception handling. And, it only has minor coverage of C#/.Net 2.0 - I hope there will be an updated version available because there are many relevant changes. Also, there seemed to be spaces randomly missing throught the book which didn't take away from the content, but was distracting.
Copyright © 2024 Thriftbooks.com Terms of Use | Privacy Policy | Do Not Sell/Share My Personal Information | Cookie Policy | Cookie Preferences | Accessibility Statement
ThriftBooks® and the ThriftBooks® logo are registered trademarks of Thrift Books Global, LLC
GoDaddy Verified and Secured