Очевидно, я не Юваль, но я могу нанести удар в эти
1.13 Избегайте полностью определенных имен типов. Вместо этого используйте оператор "using".
Производительность не может быть проблемой здесь. Я уверен, что проблема заключается в удобочитаемости.
1.26 Используйте пустые скобки для анонимных методов без параметров. Пропустите круглые скобки, только если анонимный метод мог использоваться для любого делегата.
public delegate void Foo1();
public delegate void Foo2(int val);
public void Foo()
{
Foo1 first = delegate { Console.WriteLine("Hello world"); };
Foo2 second = delegate { Console.WriteLine("Hello world"); };
Foo1 third = delegate() { Console.WriteLine("Hello world"); };
Foo2 fourth = delegate() { Console.WriteLine("Hello world"); }; // does not compile
}
Без паренов анонимный делегат может быть применен к любому делегату. С паренами, вы конкретно относитесь к подписи делегата. Предпочитайте второй синтаксис, если вам не нужна гибкость.
2.19 Избегать определения пользовательских классов исключений
Опять же, читаемость является проблемой здесь. Классы исключений фреймворка богаты и понятны. Будьте осторожны при замене.
2.29 Избегайте использования троичного условного оператора
Это удобочитаемость и расширяемость. Я не совсем согласен, но это стандартная религиозная борьба.
2.31 Избегайте вызовов функций в логических условных выражениях. Присвойте локальные переменные и проверьте их.
Частично это удобочитаемость, а частично - для простоты отладки. Я начал назначать почти все временным переменным, чтобы потом их было легче найти в отладчике.
2.47 Избегайте интерфейсов с одним элементом.
«Избегать» - это как «предпочитать», он просто дважды подумает, прежде чем сделать это. Если у вас есть только один участник, действительно ли интерфейс моделирует что-то полезное и законченное в вашем дизайне? Весьма редко бывает, чтобы урок был только с одним участником, серьезно подумайте о том, почему ваш интерфейс отличается.
2.53 Предпочитают использовать явную реализацию интерфейса
Это похоже на идею использования наименее публичного средства доступа, которое вы можете. Если вашему классу не нужно , чтобы сделать интерфейс общедоступным, то, вероятно, не должно. Очевидно, что это будет существенно отличаться в зависимости от вашего дизайна, но, учитывая тот факт, что большинство людей просто делают интерфейс неявным, даже не задумываясь об этом, этот совет стоит рассмотреть.