F # и вопрос управления winform - PullRequest
2 голосов
/ 14 апреля 2009

Я очень новичок в F #, и я подумал, что разработаю простой калькулятор winform, чтобы улучшить свои навыки с F # и .NET. Я столкнулся с двумя проблемами, на которые, вероятно, есть очень простые ответы, однако я не смог найти никакой помощи из своих ресурсов.

Во-первых, я хочу иметь возможность изменить тип моего текстового поля на целое, чтобы при нажатии кнопки «добавить» событие добавляло целые числа, а не объединяло их. Например:

btnPlus.Click.Add (fun _ -> tb1.Text <- ("2") + ("2")) дает мне 22, а не 4 </p>

Как указать целочисленный тип для текстового поля или целочисленный тип для значений, введенных в текстовое поле?

Мой следующий вопрос касается синтаксиса. Мне было просто интересно, как добавить несколько команд к событию. То есть, в приведенном выше примере, скажем, я хотел добавить два целых числа, плюс открыть другую форму и запустить окно сообщения после нажатия кнопки. Я просто включаю запятые между каждой командой, например: btnPlus.Click.Add (забавно _ -> добавлять целые числа, открытую форму, окно сообщения) или есть что-то еще?

Я прошу прощения за софоморные вопросы. Недостаточно ресурсов для F # и winforms, как для F # и вывода (то есть print, cmd и т. Д.)

Спасибо,

DFM

Ответы [ 2 ]

2 голосов
/ 14 апреля 2009

Я думаю, что текстовое поле всегда является строкой, но вы можете сделать, например,

(2 + 2).ToString()

(не совсем уверен, что вы ищете).

Что касается нескольких операторов внутри тела лямбды, F # основан на выражениях, но использует ';' или новые строки для последовательности, например,

(fun _ -> doFoo(); doBar())

или

(fun _ ->
    doFoo()
    doBar()
)
1 голос
/ 14 апреля 2009

Вам просто нужно проанализировать содержимое текстового поля как целое число. Вы можете сделать это через Convert.ToInt32.

open System
let string1 = "254"
let string2 = "4525"
let myNum = Convert.ToInt32(string1) + Convert.ToInt32(string2)

Редактировать: Вы также можете использовать Int32.TryParse (string, int32) для этого.

Редактировать: в F # вы можете просто использовать "int", например, (int string1).

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...