// using System.Collections;
// using System.Collections.Generic;
// using System.Linq
public delegate string Indexer<T>(T obj);
public static string concatenate<T>(IEnumerable<T> collection, Indexer<T> indexer, char separator)
{
StringBuilder sb = new StringBuilder();
foreach (T t in collection) sb.Append(indexer(t)).Append(separator);
return sb.Remove(sb.Length - 1, 1).ToString();
}
// version for non-generic collections
public static string concatenate<T>(IEnumerable collection, Indexer<T> indexer, char separator)
{
StringBuilder sb = new StringBuilder();
foreach (object t in collection) sb.Append(indexer((T)t)).Append(separator);
return sb.Remove(sb.Length - 1, 1).ToString();
}
// example 1: simple int list
string getAllInts(IEnumerable<int> listOfInts)
{
return concatenate<int>(listOfInts, Convert.ToString, ',');
}
// example 2: DataTable.Rows
string getTitle(DataRow row) { return row["title"].ToString(); }
string getAllTitles(DataTable table)
{
return concatenate<DataRow>(table.Rows, getTitle, '\n');
}
// example 3: DataTable.Rows without Indexer function
string getAllTitles(DataTable table)
{
return concatenate<DataRow>(table.Rows, r => r["title"].ToString(), '\n');
}
Python. Потому что пробелы не должны иметь смысла, кроме случаев крайней необходимости. :-D * утки *
C ++. Грязный взлом поверх C, позволяющий ООП, приводящий к ужасающему синтаксису и отсутствию сборки мусора, вместо того, чтобы полностью переработать ООП, как Java или C #. * снова утки *
ШАПАЕТ. Название говорит само за себя.
Инфраструктура ООП Perl5 - выглядит как неприятный взлом над языком, который изначально не предназначался для ООП.
Одноэлементный шаблон (также известный как глобальная переменная в шаблоне маскировки).
Многоуровневая конструкция. В следующий раз, когда я унаследую «решение», содержащее функционально пустой проект «BusinessObjects», я собираюсь кого-нибудь задушить. Я поражен тем, что этот образец все еще так распространен спустя 15 лет после того, как я впервые столкнулся с ним. Как я уже сказал в другом ответе, наслоение отлично подходит для лазаньи, но автоматически не подходит для всего программного обеспечения.
http://thedailywtf.com/articles/the-mythical-business-layer.aspx
Архитектура Big Ball of Mud , хотя в данном случае это скорее недостаток изобретений, чем новых.
Все без исключения "улучшения" BASIC. BASIC с самого начала был сломан. VB был попыткой исправить это, но - FAIL . Затем был создан VB.Net, так что к тому времени, когда люди осознают, в каком беспорядке они оказались, они окажутся по колено в аду.
Честно говоря, я бы хотел увидеть Java , горящую в аду, или, по крайней мере, они должны создать полный римейк (я знаю, что уже есть такой под названием C # ).