Который является более эффективным Cstr (значение) или значение. ToString ()

У меня была похожая проблема. Решением было сначала вызвать FirebaseApp.configure():

FirebaseApp.configure()
Messaging.messaging().delegate = self

вместо:

Messaging.messaging().delegate = self // this brakes FCM
FirebaseApp.configure()
9
задан Peter 11 June 2009 в 08:03
поделиться

4 ответа

Из здесь (лучше не могу сказать):

CStr - ключевое слово, а ToString - функция (метод). CStr скомпилирован встроенный и создает код в зависимости от от типа переданного объекта. Это в основном там для людей, привыкших это из предыдущих версий VB. я больше не использовал CStr в .Net (потому что не совсем понятно, что он делает в каких ситуациях и это тоже не очень хорошо документированы).

Разница зависит от того, какой Функция ToString, которую вы используете. Каждый тип может иметь свою собственную реализацию.

12
ответ дан 4 December 2019 в 08:52
поделиться

CStr (объект) является приведением (эквивалентным (строковому) объекту в C #) и выбрасывает esxception, если задан нулевой объект или объект, который не может быть преобразованным в строку. Однако .ToString () будет работать с любым типом объекта (поскольку он реализован в классе Object) и, если он не переопределен текущим классом, вернет базовый метод ToString (). В вашем случае вы должны переопределить метод ToString () в своем классе ID_TYPE и вернуть нужную строку.

-1
ответ дан 4 December 2019 в 08:52
поделиться

Это две совершенно разные вещи. CStr - это перегруженная функция, которая преобразует данные определенных типов в строку, а ToString вызывает метод, который есть у всех объектов .net и который вы можете переопределить, но который по умолчанию содержит название объекта. ToString вернет данные типа, только если он был переопределен для этого.

1
ответ дан 4 December 2019 в 08:52
поделиться

Для удобства чтения, если бы мне нужно было писать код на VB.NET (я программист на C #), я бы по возможности избегал конкретных ключевых слов / функций VB. Используя только классы и методы .NET, ваш код будет более понятным для людей, привыкших к разработке на других языках .NET. Не говоря уже о том, что эти функции предназначены в основном для совместимости с VB6, и они выглядят немного неуместно по сравнению с .NET.

Конечно, могут быть разумные исключения, иногда VB.NET действительно очень упрощает выполнять определенные задачи, и может быть удобно этим воспользоваться; но, как правило, я бы не стал использовать какие-либо специфические функции VB.NET.

8
ответ дан 4 December 2019 в 08:52
поделиться
Другие вопросы по тегам:

Похожие вопросы: