Selasa, 12 Mei 2015

^ Ebook Free Effective C#: 50 Specific Ways to Improve Your C#, by Bill Wagner

Ebook Free Effective C#: 50 Specific Ways to Improve Your C#, by Bill Wagner

Effective C#: 50 Specific Ways To Improve Your C#, By Bill Wagner. In undergoing this life, many individuals consistently attempt to do as well as obtain the ideal. New knowledge, encounter, lesson, and everything that can enhance the life will be done. Nonetheless, many individuals sometimes feel perplexed to obtain those things. Really feeling the limited of experience as well as sources to be far better is among the lacks to possess. Nonetheless, there is a quite basic thing that can be done. This is what your instructor consistently manoeuvres you to do this. Yeah, reading is the answer. Reading a book as this Effective C#: 50 Specific Ways To Improve Your C#, By Bill Wagner as well as various other recommendations can enhance your life quality. Just how can it be?

Effective C#: 50 Specific Ways to Improve Your C#, by Bill Wagner

Effective C#: 50 Specific Ways to Improve Your C#, by Bill Wagner



Effective C#: 50 Specific Ways to Improve Your C#, by Bill Wagner

Ebook Free Effective C#: 50 Specific Ways to Improve Your C#, by Bill Wagner

Pointer in choosing the very best book Effective C#: 50 Specific Ways To Improve Your C#, By Bill Wagner to read this day can be gained by reading this resource. You can find the best book Effective C#: 50 Specific Ways To Improve Your C#, By Bill Wagner that is sold in this globe. Not only had the books published from this country, however additionally the various other nations. As well as currently, we expect you to check out Effective C#: 50 Specific Ways To Improve Your C#, By Bill Wagner as one of the reading products. This is only one of the best publications to accumulate in this site. Look at the page as well as look the books Effective C#: 50 Specific Ways To Improve Your C#, By Bill Wagner You can locate lots of titles of the books offered.

There is without a doubt that publication Effective C#: 50 Specific Ways To Improve Your C#, By Bill Wagner will always provide you motivations. Even this is simply a publication Effective C#: 50 Specific Ways To Improve Your C#, By Bill Wagner; you can find many genres as well as kinds of books. From entertaining to experience to politic, as well as scientific researches are all given. As exactly what we explain, below we offer those all, from famous authors as well as author around the world. This Effective C#: 50 Specific Ways To Improve Your C#, By Bill Wagner is one of the collections. Are you interested? Take it now. Exactly how is the means? Find out more this post!

When somebody needs to go to guide shops, search establishment by store, rack by shelf, it is really bothersome. This is why we provide guide compilations in this website. It will certainly alleviate you to search guide Effective C#: 50 Specific Ways To Improve Your C#, By Bill Wagner as you such as. By browsing the title, publisher, or authors of guide you desire, you can locate them promptly. At home, workplace, or perhaps in your way can be all best place within web connections. If you want to download the Effective C#: 50 Specific Ways To Improve Your C#, By Bill Wagner, it is really simple then, considering that now we proffer the link to purchase as well as make deals to download and install Effective C#: 50 Specific Ways To Improve Your C#, By Bill Wagner So easy!

Interested? Naturally, this is why, we suppose you to click the link web page to see, and then you can take pleasure in guide Effective C#: 50 Specific Ways To Improve Your C#, By Bill Wagner downloaded and install until finished. You could save the soft documents of this Effective C#: 50 Specific Ways To Improve Your C#, By Bill Wagner in your gizmo. Certainly, you will bring the gadget everywhere, won't you? This is why, every single time you have leisure, each time you can delight in reading by soft copy publication Effective C#: 50 Specific Ways To Improve Your C#, By Bill Wagner

Effective C#: 50 Specific Ways to Improve Your C#, by Bill Wagner

"This book really demonstrates Bill's strengths as a writer and programmer. In a very short amount of time, he is able to present an issue, fix it and conclude it; each chapter is tight, succinct, and to the point."

—Josh Holmes, Independent Contractor

"The book provides a good introduction to the C# language elements from a pragmatic point of view, identifying best practices along the way, and following a clear and logical progression from the basic syntax to creating components to improving your code writing skills. Since each topic is covered in short entries, it is very easy to read and you'll quickly realize the benefits of the book."

—Tomas Restrepo, Microsoft MVP

"The book covers the basics well, especially with respect to the decisions needed when deriving classes from System.Object. It is easy to read with examples that are clear, concise and solid. I think it will bring good value to most readers."

—Rob Steel, Central Region Integration COE & Lead Architect, Microsoft

"Effective C# provides the C# developer with the tools they need to rapidly grow their experience in Visual C# 2003 while also providing insight into the many improvements to the language that will be hitting a desktop near you in the form of Visual C# 2005."

—Doug Holland, Precision Objects

"Part of the point of the .NET Framework—and the C# Language, in particular—is to let the developer focus solving customer problems and deliver product, rather than spending hours (or even weeks) writing plumbing code. Bill Wagner's Effective C#, not only shows you what's going on behind the scenes, but shows you how to take advantage of particular C# code constructs. Written in a dispassionate style that focuses on the facts—and just the facts—of writing effective C# code, Wagner's book drills down into practices that will let you write C# applications and components that are easier to maintain as well as faster to run. I'm recommending Effective C# to all students of my .NET BootCamp and other C#-related courses."

—Richard Hale Shaw, www.RichardHaleShawGroup.com

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:

  • Use both types of C# constants for efficiency and maintainability, see item 2

  • Use immutable data types to eliminate unnecessary error checking, see item 7

  • Avoid the C# function that'll practically always get you in trouble, see item 10

  • Minimize garbage collection, boxing, and unboxing, see items 16 and 17

  • Take full advantage of interfaces and delegates, see items 19 though 22

  • Create CLS compliant assemblies that use noncompliant C# language features, see item 30

  • Improve reliability and maintainability by creating small, cohesive assemblies, see item 32

  • Leverage the full power of .NET's runtime diagnostics, see item 36

  • Know when—and when not—to use reflection, see items 42 and 43

  • Preview the major enhancements in C# 2.0, see item 49

  • You're already a successful C# programmer—this book can help you become an outstanding one.

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.

  • Sales Rank: #1378285 in Books
  • Published on: 2004-12-13
  • Released on: 2004-12-03
  • Original language: English
  • Number of items: 1
  • Dimensions: 9.10" h x .70" w x 7.00" l, 1.45 pounds
  • Binding: Paperback
  • 336 pages

From the Back Cover

"This book really demonstrates Bill's strengths as a writer and programmer. In a very short amount of time, he is able to present an issue, fix it and conclude it; each chapter is tight, succinct, and to the point."

—Josh Holmes, Independent Contractor

"The book provides a good introduction to the C# language elements from a pragmatic point of view, identifying best practices along the way, and following a clear and logical progression from the basic syntax to creating components to improving your code writing skills. Since each topic is covered in short entries, it is very easy to read and you'll quickly realize the benefits of the book."

—Tomas Restrepo, Microsoft MVP

"The book covers the basics well, especially with respect to the decisions needed when deriving classes from System.Object. It is easy to read with examples that are clear, concise and solid. I think it will bring good value to most readers."

—Rob Steel, Central Region Integration COE & Lead Architect, Microsoft

"Effective C# provides the C# developer with the tools they need to rapidly grow their experience in Visual C# 2003 while also providing insight into the many improvements to the language that will be hitting a desktop near you in the form of Visual C# 2005."

—Doug Holland, Precision Objects

"Part of the point of the .NET Framework—and the C# Language, in particular—is to let the developer focus solving customer problems and deliver product, rather than spending hours (or even weeks) writing plumbing code. Bill Wagner's Effective C#, not only shows you what's going on behind the scenes, but shows you how to take advantage of particular C# code constructs. Written in a dispassionate style that focuses on the facts—and just the facts—of writing effective C# code, Wagner's book drills down into practices that will let you write C# applications and components that are easier to maintain as well as faster to run. I'm recommending Effective C# to all students of my .NET BootCamp and other C#-related courses."

—Richard Hale Shaw, www.RichardHaleShawGroup.com

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:

  • Use both types of C# constants for efficiency and maintainability, see item 2

  • Use immutable data types to eliminate unnecessary error checking, see item 7

  • Avoid the C# function that'll practically always get you in trouble, see item 10

  • Minimize garbage collection, boxing, and unboxing, see items 16 and 17

  • Take full advantage of interfaces and delegates, see items 19 though 22

  • Create CLS compliant assemblies that use noncompliant C# language features, see item 30

  • Improve reliability and maintainability by creating small, cohesive assemblies, see item 32

  • Leverage the full power of .NET's runtime diagnostics, see item 36

  • Know when—and when not—to use reflection, see items 42 and 43

  • Preview the major enhancements in C# 2.0, see item 49

  • You're already a successful C# programmer—this book can help you become an outstanding one.

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.

About the Author
Introduction. 1. C# Language Elements. Item 1 - Always Use Properties Instead of Accessible Data Members. Item 2 - Prefer readonly to const. Item 3 - Prefer the is or as Operators to Casts. Item 4 - Use Conditional Attributes Instead of #if. Item 5 - Always Provide ToString(). Item 6 - Distinguish Between Value Types and Reference Types. Item 7 - Prefer Immutable Atomic Value Types. Item 8 - Ensure That 0 Is a Valid State for Value Types. Item 9 - Understand the Relationships Among ReferenceEquals(),static Equals(), instance Equals(), and operator==. Item 10 - Understand the Pitfalls of GetHashCode(). Item 11 - Prefer foreach Loops. 2. .NET Resource Management. Item 12 - Prefer Variable Initializers to Assignment Statements. Item 13 - Initialize Static Class Members with Static Constructors. Item 14 - Utilize Constructor Chaining. Item 15 - Utilize using and try/finally for Resource Cleanup. Item 16 - Minimize Garbage. Item 17 - Minimize Boxing and Unboxing. Item 18 - Implement the Standard Dispose Pattern. 3. Expressing Designs with C#. Item 19 - Prefer Defining and Implementing Interfaces to Inheritance. Item 20 - Distinguish Between Implementing Interfaces and Overriding Virtual Functions. Item 21 - Express Callbacks with Delegates. Item 22 - Define Outgoing Interfaces with Events. Item 23 - Avoid Returning References to Internal Class Objects. Item 24 - Prefer Declarative to Imperative Programming. Item 25 - Prefer Serializable Types. Item 26 - Implement Ordering Relations with IComparable and Icomparer. Item 27 - Avoid Icloneable. Item 28 - Avoid Conversion Operators. Item 29 - Use the new Modifier Only When Base Class Updates Mandate It. 4. Creating Binary Components. Item 30 - Prefer CLS-Compliant Assemblies. Item 31 - Prefer Small, Simple Functions. Item 32 - Prefer Smaller, Cohesive Assemblies. Item 33 - Limit Visibility of Your Types. Item 34 - Create Large-Grain Web APIs. 5. Working with the Framework. Item 35 - Prefer Overrides to Event Handlers. Item 36 - Leverage .NET Runtime Diagnostics. Item 37 - Use the Standard Configuration Mechanism. Item 38 - Utilize and Support Data Binding. Item 39 - Use .NET Validation. Item 40 - Match Your Collection to Your Needs. Item 41 - Prefer DataSets to Custom Structures. Item 42 - Utilize Attributes to Simplify Reflection. Item 43 - Don't Overuse Reflection. Item 44 - Create Complete Application-Specific Exception Classes. 6. Miscellaneous. Item 45 - Prefer the Strong Exception Guarantee. Item 46 - Minimize Interop. Item 47 - Prefer Safe Code. Item 48 - Learn About Tools and Resources. Item 49 - Prepare for C# 2.0. Item 50 - Learn About the ECMA Standard. Index.

Excerpt. © Reprinted by permission. All rights reserved.

This book is designed to offer practical advice for the programmer on how to improve productivity when using the C# language and the .NET libraries. In it, I have comprised 50 key items, or minitopics, related to the most-frequently-asked questions that I (and other C# consultants) have encountered while working with the C# community.

I started using C# after more than 10 years of C++ development, and it seems that many C# developers are following suit. Throughout the book, I discuss where following C++ practices may cause problems in using C#. Other C# developers are coming to the language with a strong Java background; they may find some of these passages rather obvious. Because some of the best practices change from Java to C#, I encourage Java developers to pay special attention to the discussions on value types (see Chapter 1, "C# Language Elements"). In addition, the .NET Garbage Collector behaves differently than the JVM Garbage Collector (see Chapter 2, ".NET Resource Management").

The items in this book are the collection of recommendations that I most often give developers. Although not all items are universal, most of the items can be easily applied to everyday programming scenarios. These include discussions on Properties (Item 1), Conditional Compilation (Item 4), Immutable Types (Item 7), Equality (Item 9), ICloneable (Item 27), and the new Modifier (Item 29). It has been my experience that, in most situations, decreasing development time and writing good code are the primary goals of the programmer. Certain scientific and engineering applications may place the highest premium on the overall performance of the system. Still, for others, it's all about the scalability. Depending on your goals, you might find particular information more (or less) relevant under certain circumstances. To address this, I have tried to explain the goals in detail. My discussions on readonly and const (Item 2), Serializable Types (Item 25), CLS Compliance (Item 31), Web Methods (Item 34), and DataSets (Item 41) assume certain design goals. Those goals are spelled out in these items, so that you can decide what is most applicable for you in your given situation.

Although each item in Effective C# stands alone, it is important to understand that the items have been organized around major topics, such as C# language syntax, resource management, and object and component design. This is no accident. My goal is to maximize learning the material covered in the book by leveraging and building each item on earlier items. Don't let that keep you from using it as a reference, though. If you have specific questions, this book functions well as the ideal "ask-me" tool. Please keep in mind that this is not a tutorial or a guide to the language, nor is it going to teach you C# syntax or structure. My goal is to provide guidance on the best constructs to use in different situations.

Who Should Read this Book?

Effective C# is written for professional developers, those programmers who use C# in their daily work lives. It assumes that you have some experience with object-oriented programming and at least one language in the C family: C, C++, C#, or Java. Developers with a Visual Basic 6 background should be familiar with both the C# syntax and object-oriented design before reading this book. Additionally, you should have some experience with the major areas of .NET: Web Services, ADO.NET, Web forms, and Windows Forms. I reference these concepts throughout the book.

To fully take advantage of this book, you should understand the way the .NET environment handles assemblies, the Microsoft Intermediate Language (MSIL), and executable code. The C# compiler produces assemblies that contain MSIL, which I often abbreviate as IL. When an assembly is loaded, the Just In Time (JIT) Compiler converts that MSIL into machine-executable code. The C# compiler does perform some optimizations, but the JIT compiler is responsible for many more effective optimizations, such as inlining. Throughout the book, I've explained which process is involved in which optimizations. This two-step compilation process has a significant effect on which constructs perform best in different situations.

About the Content

Chapter 1,"C# Language Elements," discusses the C# syntax elements and the core methods of System.Object that are part of every type you write. These are the topics that you must remember every day when you write C# code: declarations, statements, algorithms, and the System.Object interface. In addition, all the items that directly relate to the distinction between value types and reference types are in this chapter. Many items have some differences, depending on whether you are using a reference type (class) or a value type (struct). I strongly encourage you to read the discussions on value and reference types (Items 6 through 8) before reading deeper into the book.

Chapter 2, ".NET Resource Management," covers resource management with C# and .NET. You'll learn how to optimize your resource allocation and usage patterns for the .NET managed execution environment. Yes, the .NET Garbage Collector makes your life much simpler. Memory management is the environment's responsibility, not yours. But, your actions can have a big impact on how well the Garbage Collector performs for your application. And even if memory is not your problem, nonmemory resources are still your responsibility; they can be handled through IDisposable. You'll learn the best practices for resource management in .NET here.

Chapter 3, "Expressing Designs with C#," covers object-oriented design from a C# perspective. C# provides a rich palette of tools for your use. Sometimes, the same problems can be solved in many ways: using interfaces, delegates, events, or attributes and reflection. Which one you pick will have a huge impact on the future maintainability of your system. Choosing the best representation of your design will help to make it easier for the programmers using your types. The most natural representation will make your intent clearer. Your types will be easier to use and harder to misuse. The items in Chapter 3 focus on the design decisions you will make and when each C# idiom is most appropriate.

Chapter 4, "Creating Binary Components," covers components and language interoperability. You'll learn how to write components that can be consumed by other .NET languages, without sacrificing your favorite C# features. You'll also learn how to subdivide your classes into components in order to upgrade pieces of your application. You should be able to release new versions of a component without redistributing the entire application.

Chapter 5, "Working with the Framework," covers underutilized portions of the .NET Framework. I see a strong desire in many developers to create their own software rather than use what's already been built. Maybe it's the size of the .NET Framework that causes this; maybe it's that the framework is completely new. These items cover the parts of the framework where I have seen developers reinvent the wheel rather than use what they've been given. Save yourself the time by learning how to use the framework more efficiently.

Chapter 6, "Miscellaneous," finishes with items that did not fit in the other categories and with a look forward. Look here for C# 2.0 information, standards information, exception-safe code, security, and interop.

A Word About the Items

My vision for these items is to provide you with clear and succinct advice for writing C# software. Some guidelines in the book are universal because they affect the correctness of a program, such as initializing data members properly (see Chapter 2). Others are not so obvious and have generated much debate in the .NET community, such as whether to use ADO.NET DataSets. While I personally believe that using them is a great timesaver (see Item 41), other professional programmers, whom I highly respect, disagree. It really depends on what you're building. My position comes from a timesaving stance. For others who write a great deal of software that transfer information between .NET- and Java-based systems, DataSets are a bad idea. Throughout the book, I support and have given justification for all the suggestions I make. If the justification does not apply to your situation, neither does the advice. When the advice is universal, I usually omit the obvious justification, which is this: Your program won't work otherwise.

Regarding C# 2.0

I say little about the upcoming C# 2.0 release; there are two reasons for this. First and foremost, most of the advice in this book applies just as well for C# 2.0 as it does for the current version. Although C# 2.0 is a significant upgrade, it is built on C# 1.0 and does not invalidate most of today's advice. Where the best practices will likely change, I've noted that in the text.

The second reason is that it's too early to write the most effective uses of the new C# 2.0 features. This book is based on the experience I've had--and the experience my colleagues have had--using C# 1.0. None of us has enough experience with the new features in C# 2.0 to know the best ways to incorporate them into our daily tasks. I'd rather not mislead you when the simple fact is that the time to cover the new C# 2.0 features in an Effective book has not yet arrived.



Most helpful customer reviews

25 of 26 people found the following review helpful.
Not for the C# newbie.
By Steven
Wow, what at relief this book is, really.

I have read numerous C# books and most of them do about the same thing. They touch base on a wide array of topics (database, oop, multi-threading, arrays, indexers...etc), thus you really never learn any of the more advanced stuff. Really, how many times have you read about an animal hierarchy whilst browsing through an OOP section of a programming book?

Well, in comes Effective C#. This book doesn't really focus much on specific topics (like how to do database programming and such), instead, you learn 50 specific ways to improve your C# code. For example: You have undoubtedly read about properties if you've read any basic C# book... You probably think you know everything there is to know about them... I mean, really, generally we use public properties to access private variables in a class. Well, one of the topics in this book focuses on properties - I never realized how much more there is to learn about something as simple as a property!

This book is a thinker. You will browse these pages and think to yourself "Wow! I never realized you could do that!". Your expertise on C# will definitely go up a notch or two. That brings me to my next point: This is no easy read! Even if you feel that you're at an intermediate level, you will find some of the text difficult to absorb on the first couple passes. This is definitely a techie book through and through (which isn't all that bad), but at times it may seem slightly dry.

If you are a beginner then I might pass this book up for a later day. If you are intermediate - advanced then I would definitely think about picking this baby up.

36 of 40 people found the following review helpful.
Not the Book I Was Expecting
By Martin L. Shoemaker
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 tip in this book; but it's hard to break bad habits. Read this book before you form bad habits yourself.

Note that the original printing of this book had a lot of typos where words rantogether. I now have a copy of the second printing, where those all seem to be fixed.

13 of 16 people found the following review helpful.
Four Stars : Excellent content, but the writing could be a bit more clear
By Damon Slye
First off, since writing my initial review, I find myself continually referring to this book. It has worn well. I wish I could change my rating from 3 to 4 stars. Unfortunately Amazon's review system doesn't allow that (only 3 stars for them!).

While there are many books that teach the C# languague, this is the only book I've found that offers advice on how to effectively use the language once you know it. It is unique and therefore indispensible. It's a "must-read" for any serious C# programmer.

The recommendations will help you understand C# so that you can write programs that are faster, more efficient, more maintainable, and easier to understand. Specific topics include things like value-types versus reference-types, "boxing" and "unboxing", minimizing garbage, the advantages of the operators "as" and "is" over casts, and so on.

I believe the writing and explanations could be more clear and concise. I wish the editors had spent a little more time cleaning up the text. Also, A second edition that assumes C# 2.0 should be released, since some of the recommendations deal with shortcomings of C# 1.0 that have been fixed by C# 2.0. Also, I found a couple small errors. For example, "as" is not always faster than a cast-- in some cases they generate code that is exactly the same speed. However, that's a trifling point.

I recommend this book.

See all 32 customer reviews...

Effective C#: 50 Specific Ways to Improve Your C#, by Bill Wagner PDF
Effective C#: 50 Specific Ways to Improve Your C#, by Bill Wagner EPub
Effective C#: 50 Specific Ways to Improve Your C#, by Bill Wagner Doc
Effective C#: 50 Specific Ways to Improve Your C#, by Bill Wagner iBooks
Effective C#: 50 Specific Ways to Improve Your C#, by Bill Wagner rtf
Effective C#: 50 Specific Ways to Improve Your C#, by Bill Wagner Mobipocket
Effective C#: 50 Specific Ways to Improve Your C#, by Bill Wagner Kindle

^ Ebook Free Effective C#: 50 Specific Ways to Improve Your C#, by Bill Wagner Doc

^ Ebook Free Effective C#: 50 Specific Ways to Improve Your C#, by Bill Wagner Doc

^ Ebook Free Effective C#: 50 Specific Ways to Improve Your C#, by Bill Wagner Doc
^ Ebook Free Effective C#: 50 Specific Ways to Improve Your C#, by Bill Wagner Doc

Tidak ada komentar:

Posting Komentar