Рейтинг@Mail.ru

Параметры проекта по умолчанию в Visual Studio

Published in Полезные советы

Рекомендую при написании кода в Visual Studio на VB.NET всегда использовать жёсткую проверку соответствия типов, которая задаётся директивой Option Strict. При создании нового проекта с настройками среды по умолчанию, используется нестрогая проверка. Чтобы каждый раз не менять данную директиву в свойствах проекта, её можно поменять в настройках Visual Studio: Options — Projects and Solutions — VB Defaults — Option Strict

Настройки по умолчанию для новых проектов, создаваемых в Visual Studio
Настройки по умолчанию для новых проектов, создаваемых в Visual Studio
Читать далее...

Добавление заданного текста к содержимому RichTextBox (WPF)

Published in Полезные советы

Напишем метод, который добавляет к содержимому расширенного текстового поля RichTextBox текст заданного цвета:

Private Sub AppendText(text As String, color As Color)
    With RichTextBox1
            .SelectionStart = RichTextBox1.TextLength
            .SelectionLength = 0
            .SelectionColor = color
            .AppendText(text)
            .SelectionColor = .ForeColor
    End With
End Sub
Читать далее...

Использование нескольких конструкторов в одном блоке Using (VB.NET)

Published in Полезные советы

В Visual Basic .NET есть такая, довольно часто встречающаяся, конструкция:

Using fs As New FileStream(fi.FullName, FileMode.Open)
    Using sr As New StreamReader(fs, Text.Encoding.GetEncoding(1251))
	'...
    End Using
End Using

Для неё есть удобный сокращённый синтаксис:

Using fs As New FileStream(fi.FullName, FileMode.Open), sr As New StreamReader(fs, Text.Encoding.GetEncoding(1251))
    '...
End Using
Читать далее...

Проверка значений, вводимых в поле TextBox, в XAML

Published in Полезные советы

В WPF имеется специальный стандартный механизм, позволяющий выполнять проверку (валидацию) данных, вводимых пользователем в текстовое поле TextBox. Этот механизм называется правилами проверки (validation rule). Для полей ввода, в которые введены недопустимые значения, в WPF даже определён свой стиль: красная рамка вокруг элемента TextBox. Конечно, его можно переопределить.

Чтобы воспользоваться стандартным валидатором, нужно выполнить три простых шага. Давайте рассмотрим их на таком примере: есть свойство MyProperty типа Integer, и его значение должно лежать в границах от 1 до 10.

1) Сначала создаём класс, который является наследником класса ValidationRule:

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

Объединение строк с помощью заданного символа

Published in Полезные советы

Зачастую бывает необходимо объединить несколько строк с помощью какого-то символа. Например, при формировании строки таблицы для записи в текстовый файл. Можно, разумеется, делать это с помощью конкатенации явно, а можно воспользоваться статическим методом String.Join():

String.Join("-", {"A", "B", "C", "D"})

Результатом выполнения этого когда, как не сложно догадаться, будет строка "A-B-C-D". В качестве разделителя может выступать как один символ, так и целая строка, состоящая из нескольких символов.

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

Переопределение явного приведения типов в VB.NET

Published in Полезные советы

Среда .NET позволяет переопределять стандартные операторы. В частности, оператор CType(). Однако большинство примеров даются на языке C#. Чтобы переопределить оператор CType() в языке VB.NET, нужно поступить следующим образом:

Public Shared Widening Operator CType(m As MyClass) As String
	Return $"Это тип {m.GetType()} приведён к типу System.String."
End Operator

Здесь ключевое слово widening является указанием на то, что данное преобразование типов является расширяющим преобразованием (в отличие от narrowing – сужающего). Это значит, что при выполнении данного преобразования мы не потеряем данные, и оно может быть выполнено безопасно.

Замечу, что нельзя приводить тип к своему базовому классу, и наоборот: базовый – к дочернему.

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

Анонимные типы в VB.NET

Published in Полезные советы

Анонимные типы – это объекты, которые определяются локально в зоне видимости метода или класса и не имеют специального класса, в котором они описаны. Такие типы полезны когда нужно быстро создать какую-то структурированную сущность для хранения временных данных.
Читать далее...
Subscribe to this RSS feed