... of Wow! eBook ptg Effective C# 50 Specific Ways to Improve Your C# Second Edition Bill Wagner Upper Saddle River, NJ • Boston • Indianapolis • San Francisco New York • Toronto • Montreal • London ... Framework 179 Item 30 : Prefer Overrides to Event Handlers 179 Item 31 : Implement Ordering Relations with IComparable<T> and IComparer<T> 1 83 Item 32 : A...
Ngày tải lên: 12/08/2014, 16:21
... "SomeSample.Size" is not what you want to display to your users. But that’s what you get when you don’t override ToString() in your classes. You write a class once, but your clients use it many times. ... } #endregion // Nested class to provide the // custom formatting for the Customer class. private class CustomerFormatProvider : ICustomFormatter { #region ICust...
Ngày tải lên: 12/08/2014, 16:21
Effective C#50 Specific Ways to Improve Your C# Second Edition phần 3 docx
... are, stop it. Veteran C++ programmers would factor the common algorithms into a private helper method. Stop that, too. When you find that multiple constructors contain the same logic, fac- tor ... logic to initialize static member variables, create a static constructor. Implementing the singleton pattern in C# is the most frequent use of a static constructor. Make your instance const...
Ngày tải lên: 12/08/2014, 16:21
Effective C#50 Specific Ways to Improve Your C# Second Edition phần 4 pdf
... structure refers to the same array storage (phones) allocated outside the object. Developers can modify your immutable structure through another variable that refers to the same storage. To remove ... meant to store data values, value types are the way to go. The decision to make a value type or a reference type is an important one. It is a far-reaching change to turn a val...
Ngày tải lên: 12/08/2014, 16:21
Effective C#50 Specific Ways to Improve Your C# Second Edition phần 6 pptx
... Relational Operators. public static bool operator <(Customer left, Customer right) { return left.CompareTo(right) < 0; } public static bool operator <=(Customer left, Customer right) ... (!(obj is Customer)) throw new ArgumentException( "Argument is not a Customer", "obj"); Customer otherCustomer = (Customer)obj; return this.CompareTo(otherCustomer); } #en...
Ngày tải lên: 12/08/2014, 16:21
Effective C#50 Specific Ways to Improve Your C# Second Edition phần 7 ppt
... resolution works to be able to use your API. Instead, don’t overload methods declared in a base class. It doesn’t provide any value, and it will only lead to confusion among your users. Item 35 : Learn ... Item 33 covered why using the new modifier could lead to hard -to- find bugs in your code. In this item, you’ll learn why creating overloads of methods that are defined in...
Ngày tải lên: 12/08/2014, 16:21
Effective C#50 Specific Ways to Improve Your C# Second Edition phần 8 pps
... want to bring those dynamic objects back into the static type system used by most of your C# code. That’s going to require either a cast or a conver- sion operation: answer = Add(5, 12 .3) ; int ... much work to do. Implementing dynamic behavior can be a great way to approach some of your programming challenges. When you look at creating dynamic types, your first choice shou...
Ngày tải lên: 12/08/2014, 16:21
Effective C#50 Specific Ways to Improve Your C# 2nd phần 3 pps
... static constructors are called. And, yes, your static initializers execute before the base class’s static constructor. The CLR calls your static constructor automatically before your type is first ... complicated logic to initialize the singleton: public class MySingleton2 { private static readonly MySingleton2 theOneAndOnly; static MySingleton2() { theOneAndOnly = new MySingleton2...
Ngày tải lên: 12/08/2014, 20:22