Я создал страницу регистрации пользователя в UWP, которая позволяет пользователю вводить свои регистрационные данные, а затем нажимать кнопку, чтобы обновить базу данных этой информацией:
int i = await wcf.RegisterUserAsync(UserNameBox.Text,
PasswordBox.Text,
FirstNameBox.Text,
LastNameBox.Text,
DateOfBirthBox.Text,
EULicenseBox.Text,
NonEULicenseBox.Text,
EmailBox.Text,
ContactNumberBox.Text);
Я использовал только текстовые поля - даже для полей, требующих DateTime, byte[] и bool. Я получаю следующую ошибку:
"cannot convert string to byte[]/System.DateTime/bool".
Я понимаю, что должен преобразовать, но не знаю, как это сделать.
Как мне их преобразовать?
Как их преобразовать, зависит от ввода, который пользователь должен ввести, и ввода, ожидаемого методом RegisterUserAsync. Например, для логического типа ожидается ли, что пользователь наберет yes или no, или он должен ввести true, или false, или 1, или 0?





Большинство базовых типов .Net имеют методы Parse и TryParse, которые принимают строки, которые вы можете использовать, чтобы попытаться проанализировать строку на значение.
DateTime dateOfBirth;
if (DateTime.TryParse(DateOfBirthBox.Text, out dateOfBirth))
{
// dateOfBirth was parsed successfully and is valid.
}
В последней версии C 'вы можете написать это так: if (DateTime.TryParse (DateOfBirthBox.Text, out DateTime dateOfBirth)) {// dateOfBirth был успешно проанализирован и действителен. }
Во-первых, не используйте текстовые поля для других типов данных. Если вы должны / должны преобразовать его в правильные типы данных, прежде чем передавать его вызову функции для правильной проверки, вы можете зафиксировать проблемы, если типы данных не совпадают, вы можете использовать значения по умолчанию или вернуть ошибку пользователю