Задать вопрос
Ответы пользователя по тегу C#
  • Method chaining перегруженных методов в c#?

    Dzuba
    @Dzuba
    Во-первых, не понимаю зачем делать ExtendedClass возвращаемым типом в реализации метода modify(). Это не переопределение метода, а ошибка.
    Делайте так:
    class ExtendedClass : AbstractClass
    {
        public override AbstractClass modify()
        {
             _value++;
            return this;
        }
    }
    Все будет работать, как вами и задумано.

    Во-вторых, отвечу на ваш вопрос. Существует способ указать тип возвращаемого значения в методе. Это можно сделать при помощи generic'ов: generic-методов или generic-типов. Но в данном случае, никакой необходимости в этом нет.
    Ответ написан
    2 комментария
  • Сброс форматирования в RichTextBox (WinForms)

    Dzuba
    @Dzuba
    Встречный вопрос: а почему бы не запоминать позицию каретки, а точнее — выделение (SelectionStart, SelectionLength) перед SelectAll() и не восстанавливать это дело вместо DeselectAll()?

    При этом, чтобы не было лишних срабатываний события TextChanged, возможно имеет смысл ввести соответствующую бульку. На всякий случай.
    Просто я не использую RichTextBox и поэтому не уверен, будет ли снова вызываться событие TextChanged, когда мы меняем расцветку текста в обработчике события TextChanged.

    Получится так:
    private bool isTextChangedHandlerRunning;
    
    private void richInputChains_TextChanged(object sender, EventArgs e)
    {
    	if (isTextChangedHandlerRunning)
    		return;
    
    	isTextChangedHandlerRunning = true;
    	int saveStart = richInputChains.SelectionStart;
    	int saveLength = richInputChains.SelectionLength;
    
    	richInputChains.SelectAll();
    	richInputChains.SelectionBackColor = System.Drawing.SystemColors.Window;
    	
    	richInputChains.SelectionStart = saveStart;
    	richInputChains.SelectionLength = saveLength;
    	isTextChangedHandlerRunning = false;
    }
    Ответ написан
    2 комментария