Перевожу код из c++ cli в c# и столкнулся с проблемой. Что означает данный фрагмент когда
public ref class ConvertedString
{
static ConvertedString();
private:
ConvertedString(const wchar_t const * data, int ActualLength) :
char_data(data),
length(ActualLength)
{
...
}
}
Я понял, что создается приватный метод, с таким же названием как и класс, может я и ошибаюсь, но типа конструктора, который присваивает переменным значения после знака :
:
char_data(data),
length(ActualLength)
Но не могу понять, почему он приватный, и что означает данная строка static ConvertedString();
Замечу, что даже у этой строки static ConvertedString();
есть какая то реализация, это как произошло то
static Matching::ConvertedString::ConvertedString() {
init_model_cache();
}
static ConvertedString();
- это объявление статического конструктора, специального метода, который вызывается исполняющей средой при создании домена приложений и может быть использован для инициализации глобального состояния класса. Реализация статического конструктора должна быть, видимо, где-то дальше в .cpp файле.
ConvertedString(const wchar_t const * data, int ActualLength) ...
- реализация конструктора экземпляра объекта. Конструктор экземпляра может быть приватным по разным причинам: потому что существует другой конструктор, вызывающий его, либо для создания экземпляра должен использоваться статический метод.
Айфон мало держит заряд, разбираемся с проблемой вместе с AppLab
После переопределения стилей ScrollBar в WPF при перетаскивании ползунка мышкой, scrollbar начинает некорректно себя вести, а именно не реагирует на прокручивание...
Как можно использовать ConcurrentBag при работе с БД? и в каких случаях это нужноБольшинство примеров рассмотрены с добавлением string/int значений