Форум
.NET
Тема
Как правильно задавать вопросы
B
I
abc
U
X
3
X
3
H1
H2
H3
H4
H5
H6
Asm
C/C++
C#
Erlang
Haskell
IDL
Java
Lisp
MSIL
Nemerle
ObjC
OCaml
Pascal
Perl
PHP
Prolog
Python
Ruby
Rust
SQL
VB
Здравствуйте, HowardLovekraft, Вы писали: HL>Здравствуйте, AndrewVK, Вы писали: AVK>>skipped HL>Добавлю свои 5 копеек: HL>1) switch по всему, чему угодно, очень надоело писать костыли в виде словарей. Т.е., вместо, например, этого: HL>[c#] HL> class A HL> { HL> private readonly Dictionary<Type, Action> helpers; HL> public A() HL> { HL> this.helpers = new Dictionary<Type, Action> HL> { HL> // инициализация какими-то значениями HL> }; HL> } HL> public void Foo() HL> { HL> var type = someObject.GetType(); HL> helpers[type](); HL> } HL> } HL>[/c#] HL>писать так: HL>[c#] HL> class A HL> { HL> public void Foo() HL> { HL> var someVar = //... HL> var type = someObject.GetType(); HL> switch (type) HL> { HL> case typeof(string): HL> break; HL> case typeof(A): HL> break; HL> case someVar.GetType(): HL> break; HL> } HL> } HL> } HL>[/c#] HL>Пусть это все разворачивается в тот же Dictionary, но типовым и однообразным способом. HL>2) [PropertyChanging] и [PropertyChanged] для автосвойств искаропки: HL>[c#] HL> [PropertyChanging] HL> [PropertyChanged] HL> public int MyProperty { get; set; } HL>[/c#] HL>3) Разрешить инициализатору поля ссылаться на экземплярный метод, поле или свойство, сейчас вместо этого приходиться городить конструктор: HL>[c#] HL> private readonly Lazy<string> someLazy = new Lazy<string>(SomeLazyFactory); HL> private string SomeLazyFactory() HL> { HL> return string.Empty; HL> } HL>[/c#] HL>4) Разрешить использовать экземплярный метод, поле или свойство при вызове конструктора базового класса: HL>[c#] HL> class A HL> { HL> public A(int i) HL> { HL> } HL> } HL> class B : A HL> { HL> public B() HL> : base(Foo()) HL> { HL> } HL> private int Foo() HL> { HL> return 0; HL> } HL> } HL>[/c#] HL>5) Разрешить использовать значения свойств объекта в инциализаторе этого же объекта. Вместо: HL>[c#] HL> var value = 1; HL> var a = new A HL> { HL> MyIntProperty = value, HL> MyStringProperty = value.ToString() HL> }; HL>[/c#] HL>писать: HL>[c#] HL> var a = new A HL> { HL> MyIntProperty = 1, HL> MyStringProperty = MyIntProperty.ToString() HL> }; HL>[/c#] HL>Если в текущем контексте уже есть MyIntProperty, разруливать неоднозначность в пользу уже существующего идентификатора, либо считать это ошибкой. HL>6) Убрать неоднозначность при явном задании размера массивов (для явно типизированных - можно, для неявно типизированных - почему-то нельзя, http://stackoverflow.com/questions/14597522/implicitly-typed-arrays-why-we-cant-set-array-size-explicitly).
Теги:
Введите теги разделенные пробелами. Обрамляйте в кавычки словосочетания с пробелами внутри, например:
"Visual Studio" .NET
Имя, пароль:
Загрузить
Нравится наш сайт?
Помогите его развитию!
Отключить смайлики
Получать ответы по e-mail
Проверить правописание
Параметры проверки …