WebDevTinyMCE и тег PRE

TinyMCE — удобный платформонезависимый Javascript WYSIWYG редактор.

Часто при его использовании возникает необходимость вставить в текст блоки <pre>.

Сделать это можно посредством выпадающего списка formatselect -> paragraph.

Но по умолчанию TinyMCE работает с тегами PRE не самым лучшим образом, к примеру при переводе строки вместо символа вставляются новый блок <pre>. Есть еще масса других мелких недостатков.

Читать далее...

C#Конструкторы и деструторы

Для простых типов (по значению) С# поддерживает два способа инициализации:

  • если переменная является локальной для метода или out-параметром метода (не инициализирована начальным значением, ссылка), то компилятор будет настаивать, чтобы в коде явно устанавливалось значение переменной до того, как она будет использована;
  • во всех остальных ситуациях (включая статические поля-члены и поля экземпляров) компилятор инициализирует переменные после их создания значениями по умолчанию.

Если указать начальное значение переменной (поля) при ее объявлении (intx = 10), то это значение будет всегда использоваться для инициализации.

Читать далее...

C#Перегрузка, сокрытие, перекрытие методов

Перекрытие методов.

Пример перекрытия метода в C#:

public class myClass
{
  // виртуальный метод
  public virtual string ToString()  
  {
      return "";
   }
}

public class myDelivierClass : myClass
{
  // переопределенный, перекрытый метод
  public override string ToString()   
  {
    return "new return";
  }
}
Читать далее...

C#Ошибки и обработка исключений

Исключение является экземпляром класса, который был явно и неявно унаследован от базового класса System.Exception.

Переменные, объявленные в блоке try выходят из видимости, когда управление предается в блок catch или finally. По окончании блока try, даже если ничего не произошло (ошибка не возникла), управление автоматически передается в блок finally, который должен содержать инструкции для освобождения ресурсов.

При обнаружении ошибки код осуществляет генерацию исключения (создание экземпляра класса исключения) и выдает его следующим образом:

throw new IndexOutOfRangeException(“Вы ввели: ” + userInput);

Как только компилятор встречает оператор throw внутри блока try, он немедленно ищет соответствующий блок catch.

Читать далее...

C#Циклы

Оператор if может иметь конструкцию:

long x = 10;
if (x is byte) {Console.WriteLine("x имеет тип byte"); }
else if (x is short) {Console.WriteLine("x имеет тип short");  }
else if (x is long) {Console.WriteLine("x имеет тип long"); }
else {Console.WriteLine("x имеет не определённый тип или object"); }

Цикл же позволяет многократно повторять одну и ту же последовательность команд (тело цикла) и прерывать действие цикла при выполнении некоторого условия.

Читать далее...