"Шедевры" программированя
Есть у нас один проектик, так вот прогеры оставили богатое духовное наследие.
public static bool IsInteger(object value )
{
try
{
if (value == null )
{
return false ;
}
else
{
string mynumber = value .ToString();
mynumber = mynumber.Replace("0" ,"" ).Replace("1" ,"" ).Replace("2" ,"" ).Replace("3" ,"" ).Replace("4" ,"" ).Replace("5" ,"" ).Replace("6" ,"" ).Replace("7" ,"" ).Replace("8" ,"" ).Replace("9" ,"" );
if (mynumber.Length == 0)
{
return true ;
}
else
{
return false ;
}
}
}
catch
{
return false ;
}
}
Да кстати, недавно была темка, мол платить стали за строчки кода. В общем изящество решения одной задачки оставляю на ваш суд:
switch (eachchar)
{
case 'a' :
case 'b' :
case 'c' :
case 'd' :
case 'e' :
case 'f' :
case 'g' :
case 'h' :
case 'i' :
case 'j' :
case 'k' :
case 'l' :
case 'm' :
case 'n' :
case 'o' :
case 'p' :
case 'q' :
case 'r' :
case 's' :
case 't' :
case 'u' :
case 'v' :
case 'w' :
case 'x' :
case 'y' :
case 'z' :
case '0' :
case '1' :
case '2' :
case '3' :
case '4' :
case '5' :
case '6' :
case '7' :
case '8' :
case '9' :
case '.' :
newname = newname + eachchar.ToString();
break ;
}
Re: "Шедевры" программированя
Здравствуйте, Uzzy, Вы писали:
U>Да кстати, недавно была темка, мол платить стали за строчки кода. В общем изящество решения одной задачки оставляю на ваш суд:
Ну и правильно. Плятят же за строчки кода, а не за результат.
... << RSDN@Home 1.1.4 beta 7 rev. 0>>
Re: "Шедевры" программированя
Здравствуйте, Uzzy, Вы писали:
Так будет лудше:
switch (eachchar)
{
case 'a' :
newname = newname + eachchar.ToString();
break ;
case 'b' :
newname = newname + eachchar.ToString();
break ;
case 'c' :
newname = newname + eachchar.ToString();
break ;
case 'd' :
newname = newname + eachchar.ToString();
break ;
case 'e' :
newname = newname + eachchar.ToString();
break ;
case 'f' :
newname = newname + eachchar.ToString();
break ;
case 'g' :
newname = newname + eachchar.ToString();
break ;
case 'h' :
newname = newname + eachchar.ToString();
break ;
case 'i' :
newname = newname + eachchar.ToString();
break ;
case 'j' :
newname = newname + eachchar.ToString();
break ;
case 'k' :
newname = newname + eachchar.ToString();
break ;
case 'l' :
newname = newname + eachchar.ToString();
break ;
case 'm' :
newname = newname + eachchar.ToString();
break ;
case 'n' :
newname = newname + eachchar.ToString();
break ;
case 'o' :
newname = newname + eachchar.ToString();
break ;
case 'p' :
newname = newname + eachchar.ToString();
break ;
case 'q' :
newname = newname + eachchar.ToString();
break ;
case 'r' :
newname = newname + eachchar.ToString();
break ;
case 's' :
newname = newname + eachchar.ToString();
break ;
case 't' :
newname = newname + eachchar.ToString();
break ;
case 'u' :
newname = newname + eachchar.ToString();
break ;
case 'v' :
newname = newname + eachchar.ToString();
break ;
case 'w' :
newname = newname + eachchar.ToString();
break ;
case 'x' :
newname = newname + eachchar.ToString();
break ;
case 'y' :
newname = newname + eachchar.ToString();
break ;
case 'z' :
newname = newname + eachchar.ToString();
break ;
case '0' :
newname = newname + eachchar.ToString();
break ;
case '1' :
newname = newname + eachchar.ToString();
break ;
case '2' :
newname = newname + eachchar.ToString();
break ;
case '3' :
newname = newname + eachchar.ToString();
break ;
case '4' :
newname = newname + eachchar.ToString();
break ;
case '5' :
newname = newname + eachchar.ToString();
break ;
case '6' :
newname = newname + eachchar.ToString();
break ;
case '7' :
newname = newname + eachchar.ToString();
break ;
case '8' :
newname = newname + eachchar.ToString();
break ;
case '9' :
newname = newname + eachchar.ToString();
break ;
case '.' :
newname = newname + eachchar.ToString();
break ;
}
Re[2]: "Шедевры" программированя
Здравствуйте, kon_v_palto, Вы писали:
__>Так будет лудше:
Ха!
char [] origChars;
char [] newChars;
switch (eachchar)
{
case 'a' :
origChars = newname.ToCharArray();
newChars = new char [origChars.Length + 1];
origChars.CopyTo(newChars, 0);
newChars[origChars.Length] = eachchar;
newname = new string (newChars);
break ;
case 'b' :
origChars = newname.ToCharArray();
newChars = new char [origChars.Length + 1];
origChars.CopyTo(newChars, 0);
newChars[origChars.Length] = eachchar;
newname = new string (newChars);
break ;
case 'c' :
origChars = newname.ToCharArray();
newChars = new char [origChars.Length + 1];
origChars.CopyTo(newChars, 0);
newChars[origChars.Length] = eachchar;
newname = new string (newChars);
break ;
case 'd' :
origChars = newname.ToCharArray();
newChars = new char [origChars.Length + 1];
origChars.CopyTo(newChars, 0);
newChars[origChars.Length] = eachchar;
newname = new string (newChars);
break ;
case 'e' :
origChars = newname.ToCharArray();
newChars = new char [origChars.Length + 1];
origChars.CopyTo(newChars, 0);
newChars[origChars.Length] = eachchar;
newname = new string (newChars);
break ;
case 'f' :
origChars = newname.ToCharArray();
newChars = new char [origChars.Length + 1];
origChars.CopyTo(newChars, 0);
newChars[origChars.Length] = eachchar;
newname = new string (newChars);
break ;
case 'g' :
origChars = newname.ToCharArray();
newChars = new char [origChars.Length + 1];
origChars.CopyTo(newChars, 0);
newChars[origChars.Length] = eachchar;
newname = new string (newChars);
break ;
case 'h' :
origChars = newname.ToCharArray();
newChars = new char [origChars.Length + 1];
origChars.CopyTo(newChars, 0);
newChars[origChars.Length] = eachchar;
newname = new string (newChars);
break ;
case 'i' :
origChars = newname.ToCharArray();
newChars = new char [origChars.Length + 1];
origChars.CopyTo(newChars, 0);
newChars[origChars.Length] = eachchar;
newname = new string (newChars);
break ;
case 'j' :
origChars = newname.ToCharArray();
newChars = new char [origChars.Length + 1];
origChars.CopyTo(newChars, 0);
newChars[origChars.Length] = eachchar;
newname = new string (newChars);
break ;
case 'k' :
origChars = newname.ToCharArray();
newChars = new char [origChars.Length + 1];
origChars.CopyTo(newChars, 0);
newChars[origChars.Length] = eachchar;
newname = new string (newChars);
break ;
case 'l' :
origChars = newname.ToCharArray();
newChars = new char [origChars.Length + 1];
origChars.CopyTo(newChars, 0);
newChars[origChars.Length] = eachchar;
newname = new string (newChars);
break ;
case 'm' :
origChars = newname.ToCharArray();
newChars = new char [origChars.Length + 1];
origChars.CopyTo(newChars, 0);
newChars[origChars.Length] = eachchar;
newname = new string (newChars);
break ;
case 'n' :
origChars = newname.ToCharArray();
newChars = new char [origChars.Length + 1];
origChars.CopyTo(newChars, 0);
newChars[origChars.Length] = eachchar;
newname = new string (newChars);
break ;
case 'o' :
origChars = newname.ToCharArray();
newChars = new char [origChars.Length + 1];
origChars.CopyTo(newChars, 0);
newChars[origChars.Length] = eachchar;
newname = new string (newChars);
break ;
case 'p' :
origChars = newname.ToCharArray();
newChars = new char [origChars.Length + 1];
origChars.CopyTo(newChars, 0);
newChars[origChars.Length] = eachchar;
newname = new string (newChars);
break ;
case 'q' :
origChars = newname.ToCharArray();
newChars = new char [origChars.Length + 1];
origChars.CopyTo(newChars, 0);
newChars[origChars.Length] = eachchar;
newname = new string (newChars);
break ;
case 'r' :
origChars = newname.ToCharArray();
newChars = new char [origChars.Length + 1];
origChars.CopyTo(newChars, 0);
newChars[origChars.Length] = eachchar;
newname = new string (newChars);
break ;
case 's' :
origChars = newname.ToCharArray();
newChars = new char [origChars.Length + 1];
origChars.CopyTo(newChars, 0);
newChars[origChars.Length] = eachchar;
newname = new string (newChars);
break ;
case 't' :
origChars = newname.ToCharArray();
newChars = new char [origChars.Length + 1];
origChars.CopyTo(newChars, 0);
newChars[origChars.Length] = eachchar;
newname = new string (newChars);
break ;
case 'u' :
origChars = newname.ToCharArray();
newChars = new char [origChars.Length + 1];
origChars.CopyTo(newChars, 0);
newChars[origChars.Length] = eachchar;
newname = new string (newChars);
break ;
case 'v' :
origChars = newname.ToCharArray();
newChars = new char [origChars.Length + 1];
origChars.CopyTo(newChars, 0);
newChars[origChars.Length] = eachchar;
newname = new string (newChars);
break ;
case 'w' :
origChars = newname.ToCharArray();
newChars = new char [origChars.Length + 1];
origChars.CopyTo(newChars, 0);
newChars[origChars.Length] = eachchar;
newname = new string (newChars);
break ;
case 'x' :
origChars = newname.ToCharArray();
newChars = new char [origChars.Length + 1];
origChars.CopyTo(newChars, 0);
newChars[origChars.Length] = eachchar;
newname = new string (newChars);
break ;
case 'y' :
origChars = newname.ToCharArray();
newChars = new char [origChars.Length + 1];
origChars.CopyTo(newChars, 0);
newChars[origChars.Length] = eachchar;
newname = new string (newChars);
break ;
case 'z' :
origChars = newname.ToCharArray();
newChars = new char [origChars.Length + 1];
origChars.CopyTo(newChars, 0);
newChars[origChars.Length] = eachchar;
newname = new string (newChars);
break ;
case '0' :
origChars = newname.ToCharArray();
newChars = new char [origChars.Length + 1];
origChars.CopyTo(newChars, 0);
newChars[origChars.Length] = eachchar;
newname = new string (newChars);
break ;
case '1' :
origChars = newname.ToCharArray();
newChars = new char [origChars.Length + 1];
origChars.CopyTo(newChars, 0);
newChars[origChars.Length] = eachchar;
newname = new string (newChars);
break ;
case '2' :
origChars = newname.ToCharArray();
newChars = new char [origChars.Length + 1];
origChars.CopyTo(newChars, 0);
newChars[origChars.Length] = eachchar;
newname = new string (newChars);
break ;
case '3' :
origChars = newname.ToCharArray();
newChars = new char [origChars.Length + 1];
origChars.CopyTo(newChars, 0);
newChars[origChars.Length] = eachchar;
newname = new string (newChars);
break ;
case '4' :
origChars = newname.ToCharArray();
newChars = new char [origChars.Length + 1];
origChars.CopyTo(newChars, 0);
newChars[origChars.Length] = eachchar;
newname = new string (newChars);
break ;
case '5' :
origChars = newname.ToCharArray();
newChars = new char [origChars.Length + 1];
origChars.CopyTo(newChars, 0);
newChars[origChars.Length] = eachchar;
newname = new string (newChars);
break ;
case '6' :
origChars = newname.ToCharArray();
newChars = new char [origChars.Length + 1];
origChars.CopyTo(newChars, 0);
newChars[origChars.Length] = eachchar;
newname = new string (newChars);
break ;
case '7' :
origChars = newname.ToCharArray();
newChars = new char [origChars.Length + 1];
origChars.CopyTo(newChars, 0);
newChars[origChars.Length] = eachchar;
newname = new string (newChars);
break ;
case '8' :
origChars = newname.ToCharArray();
newChars = new char [origChars.Length + 1];
origChars.CopyTo(newChars, 0);
newChars[origChars.Length] = eachchar;
newname = new string (newChars);
break ;
case '9' :
origChars = newname.ToCharArray();
newChars = new char [origChars.Length + 1];
origChars.CopyTo(newChars, 0);
newChars[origChars.Length] = eachchar;
newname = new string (newChars);
break ;
case '.' :
origChars = newname.ToCharArray();
newChars = new char [origChars.Length + 1];
origChars.CopyTo(newChars, 0);
newChars[origChars.Length] = eachchar;
newname = new string (newChars);
break ;
}
Re[2]: "Шедевры" программированя
От:
Uzzy
Дата: 08.08.06 09:16
Оценка:
Здравствуйте, kon_v_palto, Вы писали:
Здравствуйте, Uzzy, Вы писали:
__>Так будет лудше:
__>..
__>
Нет уж... если делать, то делать все до конца:
string tmp = null ;
switch (eachchar)
{
case 'a' :
tmp = eachchar.ToString();
newname = newname + tmp;
break ;
case 'b' :
tmp = eachchar.ToString();
newname = newname + tmp;
break ;
case 'c' :
tmp = eachchar.ToString();
newname = newname + tmp;
break ;
case 'd' :
tmp = eachchar.ToString();
newname = newname + tmp;
break ;
case 'e' :
tmp = eachchar.ToString();
newname = newname + tmp;
break ;
case 'f' :
tmp = eachchar.ToString();
newname = newname + tmp;
break ;
case 'g' :
tmp = eachchar.ToString();
newname = newname + tmp;
break ;
case 'h' :
tmp = eachchar.ToString();
newname = newname + tmp;
break ;
case 'i' :
tmp = eachchar.ToString();
newname = newname + tmp;
break ;
case 'j' :
tmp = eachchar.ToString();
newname = newname + tmp;
break ;
case 'k' :
tmp = eachchar.ToString();
newname = newname + tmp;
break ;
case 'l' :
tmp = eachchar.ToString();
newname = newname + tmp;
break ;
case 'm' :
tmp = eachchar.ToString();
newname = newname + tmp;
break ;
case 'n' :
tmp = eachchar.ToString();
newname = newname + tmp;
break ;
case 'o' :
tmp = eachchar.ToString();
newname = newname + tmp;
break ;
case 'p' :
tmp = eachchar.ToString();
newname = newname + tmp;
break ;
case 'q' :
tmp = eachchar.ToString();
newname = newname + tmp;
break ;
case 'r' :
tmp = eachchar.ToString();
newname = newname + tmp;
break ;
case 's' :
tmp = eachchar.ToString();
newname = newname + tmp;
break ;
case 't' :
tmp = eachchar.ToString();
newname = newname + tmp;
break ;
case 'u' :
tmp = eachchar.ToString();
newname = newname + tmp;
break ;
case 'v' :
tmp = eachchar.ToString();
newname = newname + tmp;
break ;
case 'w' :
tmp = eachchar.ToString();
newname = newname + tmp;
break ;
case 'x' :
tmp = eachchar.ToString();
newname = newname + tmp;
break ;
case 'y' :
tmp = eachchar.ToString();
newname = newname + tmp;
break ;
case 'z' :
tmp = eachchar.ToString();
newname = newname + tmp;
break ;
case '0' :
tmp = eachchar.ToString();
newname = newname + tmp;
break ;
case '1' :
tmp = eachchar.ToString();
newname = newname + tmp;
break ;
case '2' :
tmp = eachchar.ToString();
newname = newname + tmp;
break ;
case '3' :
tmp = eachchar.ToString();
newname = newname + tmp;
break ;
case '4' :
tmp = eachchar.ToString();
newname = newname + tmp;
break ;
case '5' :
tmp = eachchar.ToString();
newname = newname + tmp;
break ;
case '6' :
tmp = eachchar.ToString();
newname = newname + tmp;
break ;
case '7' :
tmp = eachchar.ToString();
newname = newname + tmp;
break ;
case '8' :
tmp = eachchar.ToString();
newname = newname + tmp;
break ;
case '9' :
tmp = eachchar.ToString();
newname = newname + tmp;
break ;
case '.' :
tmp = eachchar.ToString();
newname = newname + tmp;
break ;
default :
tmp = string .Empty;
newname = newname + tmp;
break ;
}
Re[3]: "Шедевры" программированя
От:
Cypress
Дата: 08.08.06 09:41
Оценка:
Здравствуйте, Oyster, Вы писали:
O>Здравствуйте, kon_v_palto, Вы писали:
__>>Так будет лудше:
O>Ха!
O>[skipped]
Синтаксический оверхед, панимаешь!
... << RSDN@Home 1.1.4 stable SR1 rev. 568>>
Re: "Шедевры" программированя
Здравствуйте, Uzzy, Вы писали:
U>Есть у нас один проектик, так вот прогеры оставили богатое духовное наследие.
U>U>public static bool IsInteger(object value )
U>{
U>}
U>
т.е. отрицательное число — это не Integer а пустая строка — Integer?
Когда-нибудь и я буду много знать, но пока это не грозит...
ICQ #134433
Re[2]: "Шедевры" программированя
От:
Ael
Дата: 08.08.06 10:02
Оценка:
Здравствуйте, Silent_Sky, Вы писали:
S_S>Здравствуйте, Uzzy, Вы писали:
U>>Есть у нас один проектик, так вот прогеры оставили богатое духовное наследие.
U>>U>>public static bool IsInteger(object value )
U>>{
U>>}
U>>
S_S>т.е. отрицательное число — это не Integer а пустая строка — Integer?
А отрицательные числа и возможность разбора пустых срок будут enhancements-ами следующей версии, не все ж сразу заказчику давать
Re[2]: "Шедевры" программированя
От:
KBH
Дата: 08.08.06 10:27
Оценка:
Здравствуйте, Silent_Sky, Вы писали:
S_S>т.е. отрицательное число — это не Integer а пустая строка — Integer?
Не пустая, а "-".
Re: "Шедевры" программированя
От:
Аноним
Дата: 08.08.06 11:07
Оценка:
Здравствуйте, Uzzy, Вы писали:
U>Есть у нас один проектик, так вот прогеры оставили богатое духовное наследие.
Да уж, круто
У нас тоже есть примеры чудо прогаммерской мысли (тихий ужас
)
public bool IsInputStringValide(string input)
{
if (input == null )
return false ;
Regex validateRegex = RegularsTable[RegularExps.InputStringValidate];
if (validateRegex.IsMatch(input).ToString().ToUpper() == "TRUE" )
return true ;
else
return false ;
}
Re[2]: "Шедевры" программированя
От:
Uzzy
Дата: 08.08.06 11:09
Оценка:
Здравствуйте, Silent_Sky, Вы писали:
S_S>т.е. отрицательное число — это не Integer а пустая строка — Integer?
мало того:
public class MuLine
{
private int _length = -1;
public MyLine(int length)
{
_length = length;
}
public override string ToString()
{
return _length.ToString();
}
}
докажи, что не инт
Re[2]: "Шедевры" программированя
От:
Аноним
Дата: 08.08.06 11:30
Оценка:
Здравствуйте, Аноним, Вы писали:
А>Здравствуйте, Uzzy, Вы писали:
U>>Есть у нас один проектик, так вот прогеры оставили богатое духовное наследие.
А>
А>Да уж, круто
А>У нас тоже есть примеры чудо прогаммерской мысли (тихий ужас )
А>А>public bool IsInputStringValide(string input)
А>{
А> if (input == null )
А> return false ;
А> Regex validateRegex = RegularsTable[RegularExps.InputStringValidate];
А> if (validateRegex.IsMatch(input).ToString().ToUpper() == "TRUE" )
А> return true ;
А> else
А> return false ;
А>}
А>
Вот повозился здесь немного с поиском
http://rsdn.ru/search/?q=%22ToLower%28%29+%3D%3D+true%22&mode=rank&group=N
и нашел, что писавший такой код не одинок в мире
http://rsdn.ru/Forum/?mid=459148
protected override object LoadPageStateFromPersistenceMedium() {
if (Enable.ToLower()=="true" ) return LoadViewState();
else return base .LoadPageStateFromPersistenceMedium();
}
protected override void SavePageStateToPersistenceMedium(object viewState) {
if (Enable.ToLower()=="true" ) SaveViewState(viewState);
else base .SavePageStateToPersistenceMedium(viewState);
}
Второй с таким же примером
http://rsdn.ru/Forum/?mid=1787264
Re[3]: "Шедевры" программированя
От:
Аноним
Дата: 08.08.06 12:41
Оценка:
Здравствуйте, Аноним, Вы писали:
А>Вот повозился здесь немного с поиском http://rsdn.ru/search/?q=%22ToLower%28%29+%3D%3D+true%22&mode=rank&group=N
А>и нашел, что писавший такой код не одинок в мире
А>http://rsdn.ru/Forum/?mid=459148
А>А> protected override object LoadPageStateFromPersistenceMedium() {
А> if (Enable.ToLower()=="true" ) return LoadViewState();
А> else return base .LoadPageStateFromPersistenceMedium();
А> }
А> protected override void SavePageStateToPersistenceMedium(object viewState) {
А> if (Enable.ToLower()=="true" ) SaveViewState(viewState);
А> else base .SavePageStateToPersistenceMedium(viewState);
А> }
А>
А>Второй с таким же примером
А>http://rsdn.ru/Forum/?mid=1787264
А что тут смешного? Может человеку больше импонирует как подсвечивается строковые константы чем булевы %)
Re[4]: "Шедевры" программированя
От:
Аноним
Дата: 08.08.06 13:00
Оценка:
Здравствуйте, Аноним, Вы писали:
А>Здравствуйте, Аноним, Вы писали:
А>А что тут смешного? Может человеку больше импонирует как подсвечивается строковые константы чем булевы %)
В первом примере, достаточно было вернуть результат работы выражения, а не старательно замусоривать код лишними проверками, да еще и с переводом в литерал
public bool IsInputStringValide(string input)
{
if (input == null )
return false ;
Regex validateRegex = RegularsTable[RegularExps.InputStringValidate];
return validateRegex.IsMatch(input);
// if (validateRegex.IsMatch(input).ToString().ToUpper() == "TRUE")
// return true;
// else
// return false;
}
Во втором примере без всего этого мусора тоже можно обойтись
protected override object LoadPageStateFromPersistenceMedium() {
if (Enabled)
LoadViewState();
base .LoadPageStateFromPersistenceMedium();
}
А вообще, ну их нафиг
Re: "Шедевры" программированя
От:
trophim
Дата: 09.08.06 20:35
Оценка:
Рекомендую всем покурить
http://www.thedailywtf.com/rss.aspx
На ентом сайте такого добра — завались просто. Бывает просто забавно, а бывает из под стула еле вылезаю. Так что поосторожней.
... << RSDN@Home 1.1.4 stable SR1 rev. 568>>
Let it be! — Давайте есть пчелу!
Пока на собственное сообщение не было ответов, его можно удалить.
Удалить