#f#
#f#
Вопрос:
Я пытаюсь создать соединение для открытия базы данных через ODBC. Я не могу понять, как выполнить функции-члены объектов. Код:
let DbConnection = new System.Data.Odbc.OdbcConnection()
DbConnection.open
Ошибки, которые я получаю, являются: Missing qualification after '.'
или иногда: unexpected identifier in implementation file
Кто-нибудь знает, что не так с моим синтаксисом?
Комментарии:
1. Вы пробовали
DbConnection.Open()
?
Ответ №1:
Я полагаю, вы хотели что-то вроде этого:
let dbConnection = new System.Data.Odbc.OdbcConnection()
dbConnection.Open()
Проблемы заключаются в:
-
F # чувствителен к регистру, поэтому вам нужно
Open
, а неopen
(такжеopen
это ключевое слово языка, поэтому, если вы хотите использовать его в качестве имени, вам придется написать``open``
— двойная обратная галочка — это способ ссылаться на зарезервированные имена) -
Open
это функция, поэтому, если вы хотите ее вызвать, вам нужно предоставить ей аргумент. Вы также можете рассматривать это как значение функции и писать, скажем,let f = dbConnection.Open
-
Я также изменил ваше именование, чтобы использовать
camelCase
для переменных, что является стандартным способом F #
Комментарии:
1. k спасибо. это работает, также в качестве касательной вы прочитали недавнюю статью Олега об отражении без угрызений совести, я прочитал пару ваших недавних сообщений в блоге, и обновление monad в паре с реализацией отражения олега может быть классным в f#