Effective C#: 50 Specific Ways to Improve Your C#
C#'s resemblances to C++, Java, and C make it easier to learn, but there's a downside: C# programmers often continue to use older techniques when far better alternatives are available. In Effective C#, respected .NET expert Bill Wagner identifies fifty ways you can start leveraging the full power of C# in order to write faster, more efficient, and more reliable software.
Effective C# follows the format that made Effective C++ (Addison-Wesley, 1998) and Effective Java (Addison-Wesley, 2001) 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 value types to assemblies, exceptions to reflection. Along the way, he shows exactly how to avoid dozens of common C# performance and reliability pitfalls. You'll learn how to:
Bill Wagner is co-founder of and .NET consultant for SRT Solutions. A nationally recognized independent expert on .NET, he has been a regular contributor to ASP.NET Pro Magazine, Visual Studio Magazine, and the .NET Insight newsletter. In addition to being a Microsoft Regional Director, he is also active in the Southeast Michigan .NET User Group and the Ann Arbor Computing Society. He is author of The C# Core Language Little Black Book (The Coriolis Group, 2002).
© Copyright Pearson Education. All rights reserved.
What people are saying - Write a review
Prefer readonly to const
Prefer the is or as Operators to Casts
Use Conditional Attributes Instead of
Always Provide ToString
Understand the Relationships Among ReferenceEquals static Equals instance Equals and operator
Prefer Variable Initializers to Assignment Statements
Initialize Static Class Members with Static Constructors
Utilize Constructor Chaining
Utilize using and tryfinally for Resource Cleanup
Minimize Boxing and Unboxing
Implement the Standard Dispose Pattern
Distinguish Between Value Types and Reference Types
Prefer Immutable Atomic Value Types
Ensure That 0 Is a Valid State for Value Types