Тупизмы в C#

 
1 2 3
RU Кирилл #28.09.2004 21:43
+
-
edit
 

Кирилл

втянувшийся

2 zespri
ИМХО такое обращение говорит только об одной из двух ошибок:
1. Функция слишком велика.
2. Неудачно выбранные имена переменных (нарушение правила "локальные-короткие, глобальные-значимые")
- Сами понимаете, вселенная-то на моей стороне.
- Вот это мне таким вульгарным и кажется.
 
+
-
edit
 

zespri

новичок
Balancer>Несколько вложенных циклов - это куча? Скажем, я прохожу по матрице и выполняю достаточно сложную обработку ячеек. Ну, пусть, от балды, это будет генетический алгоритм связной нейросети. И вот мне там надо ещё цикл организовать будет. Мне придётся смотреть, какие переменные цикла я использую выше. А это - неструктурно. Язык должен позволять не заботитсья о таких вещах. C++ - позволяет. C# - нет. Значит на таком уровне в C# задумываться нужно больше. Уровень языка с этой стороны, соответственно, ниже.
А вот, кстати, ещё на этот раз от майкрософтовца.

 

Rada

опытный

code text
  1. int i;
  2.  
  3. i = i + 1;   //Визг компилятора "unassigned value"


Хотя в i явно сидит нолик. Ваши мнения. Мне не очень нравиться чисто из личных мотивов - в VB часто пользуюсь значениями по-умолчанию. Ну влом писать i=0, b=0.0, c="", ... когда за день надо закончить большой кусок, от чего тебя отделяет 500 строк ненаписанного кода.

А обьекты ведь могут использоваться через всякие Clone в качестве l-value, даже если есть нечто MyObj o = New MyObj <_<

Не нравится мне это - слишком уж по-детски.
С себя можно начать когда все остальное будет в порядке.  
+
-
edit
 

Balancer

администратор
★★★★★

Rada>
code text
  1. Rada>int i;
  2. Rada>i = i + 1;   //Визг компилятора "unassigned value"
  3. Rada>

Rada>Хотя в i явно сидит нолик. Ваши мнения.

Тут - глубоко фиолетово. Хоть формализовать описание переменной с её инициализацией, хоть запретить таковое. С точки зрения структурности разница невелика :)

>Мне не очень нравиться чисто из личных мотивов - в VB часто пользуюсь значениями по-умолчанию. Ну влом писать i=0, b=0.0, c="",

А мне в моей практике столь же редко приходится инициировать переменные :) А всякие счётчики обычно можно как int count=0; написать :)

>... когда за день надо закончить большой кусок, от чего тебя отделяет 500 строк ненаписанного кода.

ИМХО, экономия на это копеечная. Вот локальные области видимости - это было б куда важнее :D
 
+
-
edit
 

zespri

новичок
Rada>Хотя в i явно сидит нолик. Ваши мнения. Мне не очень нравиться чисто из личных мотивов - в VB часто пользуюсь значениями по-умолчанию. Ну влом писать i=0, b=0.0, c="", ... когда за день надо закончить большой кусок, от чего тебя отделяет 500 строк ненаписанного кода.

Вообще говоря, кусок кода который ты привёл, это плохой стиль. Переменный именованые как "i" хороши только для счётчика цикла, да и то только когда у них нет никакого специального смысла, кроме как быть счётчиком. Для этих случаев предусмотрен синтаксис, на который тебе указал Balancer. Если же переменная имеет специальный смысл, что в хорошо написанном коде бывает чаще всего, то никто тебе не мешает написать:
code text
  1.   int  semicolonPosition = headerValue.IndexOf(';');

Я вот сейчас порылся в своём коде, ну нигде мне не найти примера, что бы мне нужно было что то инициализировать нулём, кроме как счётчики цикла.

Хотя нет, для всяких хитрых численных алгоритмов это бывает надо часто. Но тогда обычно переменная соответсвует некоторому параметру этого алгоритма, и инициализировать её нулём требуется по алгоритму в этом случает ты пишешь что то типа:
code text
  1.   // Crc algorythm requires initializing the running crc value with zero
  2.   int  runningCrc = 0;

Вуаля!
 

Rada

опытный

>Я вот сейчас порылся в своём коде, ну нигде мне не найти примера, что бы мне нужно было что то инициализировать нулём, кроме как счётчики цикла.

Аккумуляторы.
С себя можно начать когда все остальное будет в порядке.  
1 2 3

в начало страницы | новое
 
Поиск
Настройки
Твиттер сайта
Статистика
Рейтинг@Mail.ru