Не пойму, накой чёрт я должен писать «using System.Linq;» в каждом файле, где использую Linq?
В VB.NET есть что-то в стиле «Solution-Wide Imports» (Imports — аналог using из C#). Ужос аццкий. Никогда не поймешь, почему вдруг у тебя вместо одного класса появляется совершенно неожиданный его однофамилец.
А поподробней можно? Я, помнится, ровно месяц проработал в некоем госучреждении занималось оное злектронными паспортами и спешно оттуда уволился, так и не получив положенной мне заработной платы в размере 6000 рублей. Месяца хватило.
Почитайте "Совершенный Код" МакКоннела 7 параметров максимум (просто потому, что человек не в состоянии удерживать в кратковременной памяти более семи объектов). 5 параметров вполне себе. 3 идеально.
И не веб-сервер. У меня, например, рантайм ASP.NET хостится внутри NT-службы (которая, формально, веб-сервером стала ровно после того, как в ней появился AppDomain ASP.NET'а).
Тип System.Char хранит Code Unit'ы в UTF-16. Для символов в кодировке BMP один объект класса Char представляет ровно один символ текста. А вот для символов, закодированных в, например, Supplementary Plane, каждый символ будет либо High, либо Low Surrogate (возможно, не все варианты перечислил, но идея должна быть ясна). Об этом даже в MSDN сказано:
Most Unicode characters can be represented by a single Char object, but a character that is encoded as a base character, surrogate pair, and/or combining character sequence is represented by multiple Char objects. For this reason, a Char structure in a String object is not necessarily equivalent to a single Unicode character.
Так вот если взять и просто перевернуть все char'ы в строке, то в результате получится неверная UTF-16 строка.
Выход из положения выглядит примерно так:
static string Reverse4(string source)
{
return new string(new List<char>(ReverseImpl(SurrorgateAwareStringEnumerable(source))).ToArray());
}
static IEnumerable<T> ReverseImpl<T>(IEnumerable<T> source)
{
Stack<T> stack = new Stack<T>();
foreach(T value in source)
stack.Push(value);
return stack.ToArray();
}
static IEnumerable<char> SurrorgateAwareStringEnumerable(string source)
{
for(int i = 0; i < source.Length; ++i)
{
if(char.IsSurrogate(source[i]))
{
yield return source[i];
yield return source[++i];
} // if
else
yield return source[i];
} // for
Стоило бы указать, что такие приседания необходимы только в том случае, когда тип проекта сайта "ASP.NET Web Site". Для "ASP.NET Web Application" всей этой беготни с регистрацией пользовательских элементов управления не требуется.
Про вот такое, кстати, знали?
Control control = ParseControl("<asp:Label id=\"label1\" runat=\"server\" />"); ?
Самая муторная часть в этом всем это те самые кумулятивные скрипты. Писать их очень напрягает (меня, по крайней мере, ну не люблю я DDLщину), вечно что-то да забудешь. Я уже пару месяцев размышляю о том, в каком виде я хотел бы иметь средство, облегчающее миграцию схемы БД. Пока до дао и просветления далеко, но в RoR есть интересные идеи.
В VB.NET есть что-то в стиле «Solution-Wide Imports» (Imports — аналог using из C#). Ужос аццкий. Никогда не поймешь, почему вдруг у тебя вместо одного класса появляется совершенно неожиданный его однофамилец.
(отсюда).
Хотя утипизация довольно интересна там.
Ошибаетесь. Читайте, например, про System.Web.Hosting.ApplicationHost
Так вот если взять и просто перевернуть все char'ы в строке, то в результате получится неверная UTF-16 строка.
Выход из положения выглядит примерно так:
for
вReverse2
с вашим), ни один из которых, однако, до конца верным не является:Ой ли? Не такой уж он и простой, этот вопрос. Вот вы как эту задачу решили?
Про вот такое, кстати, знали?
Control control = ParseControl("<asp:Label id=\"label1\" runat=\"server\" />");
?И это хорошо. Нечего на них извне смотреть.
Покажите уже, как вы его используете.
Самая муторная часть в этом всем это те самые кумулятивные скрипты. Писать их очень напрягает (меня, по крайней мере, ну не люблю я DDLщину), вечно что-то да забудешь. Я уже пару месяцев размышляю о том, в каком виде я хотел бы иметь средство, облегчающее миграцию схемы БД. Пока до дао и просветления далеко, но в RoR есть интересные идеи.