... ❘ 5 From the Library 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 ... you. You likely need to attempt to cast those objects to other types, either classes or interfaces. You’ve got two choices: Use the as operator or force the compiler...
Ngày tải lên: 12/08/2014, 16:21
... Item 45. For reference types, your instance method needs to follow pre- defined behavior to avoid strange surprises for users of your class. When- ever you override Equals(), you’ll want to implement ... "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 on...
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
... 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 value type into a class ... Garbage Collector to ensure that your objects pay the performance penalty associated with finalizers only when necessary. This is the right way to handle unmanaged resources, so it...
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
... 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 ... element: 15 testing element: 16 testing element: 17 testing element: 18 testing element: 19 testing element: 152 testing element: 153 testing element: 154 testing element: 155 tes...
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
... you’ll 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); ... 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 sho...
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