"Being an effective .NET developer requires one to have a deep understanding of the language of their choice. Wagner's book provides the reader with that knowledge via well-reasoned arguments and insight. Whether you're new to C# or you've been using it for years, you'll learn something new when you read this book." -Jason Bock, Principal Consultant, Magenic "If you're at all like me, you have collected a handful of C# language pearls that have immediately transformed your abilities as a professional developer. What you hold in your hands is quite possibly the best collection of these tips that have ever been assembled. Bill has managed to exceed my wildest expectations with the latest edition in his eponymous Effective C#." -Bill Craun, Principal Consultant, Ambassador Solutions "Effective C#, Second Edition, is a must-read for anyone building high performance and/or highly scalable applications. Bill has that rare and awesome ability to take an amazingly complex problem and break it down into human, digestible, and understandable chunks." -Josh Holmes, Architect Evangelist, Microsoft "Bill has done it again. This book is a concise collection of invaluable tips for any C# developer. Learn one tip every day, and you'll become a much better C# developer after fifty days!" -Claudio Lassala, Lead Developer, EPS Software/CODE Magazine "A fountain of knowledge and understanding of the C# language. Bill gives insight to what happens under the covers of the .NET runtime based on what you write in your code and teaches pragmatic practices that lead to cleaner, easier to write, and more understandable code. A great mix of tips, tricks, and deep understanding-including things true since C# 1.0 up through new capabilities in C# 4.0-that every C# developer should read." -Brian Noyes, Chief Architect, IDesign Inc. (www.idesign.net) "Effective C# is a must-have for every C# developer. Period. Its pragmatic advice on code design is invaluable." -Shawn Wildermuth, Microsoft MVP (C#), Author, Trainer, and Speaker "In this book Bill Wagner provides practical explanations of how to use the most important features in the C# language. His deep knowledge and sophisticated communication skills illuminate the new features in C# so that you can use them to write programs that are more concise and easier to maintain." -Charlie Calvert, Microsoft C# Community Program Manager
C# has matured over the past decade: It’s now a rich language with generics, functional programming concepts, and support for both static and dynamic typing. This palette of techniques provides great tools for many different idioms, but there are also many ways to make mistakes. In Effective C#, Second Edition, respected .NET expert Bill Wagner identifies fifty ways you can leverage the full power of the C# 4.0 language to express your designs concisely and clearly.
Effective C#, Second Edition, follows a clear format that makes it indispensable to hundreds of thousands of developers: clear, practical explanations, expert tips, and plenty of realistic code examples. Drawing on his unsurpassed C# experience, Wagner addresses everything from types to resource management to dynamic typing to multicore support in the C# language and the .NET framework. Along the way, he shows how to avoid common pitfalls in the C# language and the .NET environment. You’ll learn how to
- Use both types of C# constants for efficiency and maintainability (see Item 2)
- Employ immutable data types to promote multicore processing (see Item 20)
- Minimize garbage collection, boxing, and unboxing (see Items 16 and 45)
- Take full advantage of interfaces and delegates (see Items 22 though 25)
- Make the most of the parallel framework (see Items 35 through 37)
- Use duck typing in C# (see Item 38)
- Spot the advantages of the dynamic and Expression types over reflection (see Items 42 and 43)
- Assess why query expressions are better than loops (see Item 8)
- Understand how generic covariance and contravariance affect your designs (see Item 29)
- See how optional parameters can minimize the number of method overloads (see Item 10)
You’re already a successful C# programmer–this book will help you become an outstanding one.