Студопедия

КАТЕГОРИИ:

АвтоАвтоматизацияАрхитектураАстрономияАудитБиологияБухгалтерияВоенное делоГенетикаГеографияГеологияГосударствоДомЖурналистика и СМИИзобретательствоИностранные языкиИнформатикаИскусствоИсторияКомпьютерыКулинарияКультураЛексикологияЛитератураЛогикаМаркетингМатематикаМашиностроениеМедицинаМенеджментМеталлы и СваркаМеханикаМузыкаНаселениеОбразованиеОхрана безопасности жизниОхрана ТрудаПедагогикаПолитикаПравоПриборостроениеПрограммированиеПроизводствоПромышленностьПсихологияРадиоРегилияСвязьСоциологияСпортСтандартизацияСтроительствоТехнологииТорговляТуризмФизикаФизиологияФилософияФинансыХимияХозяйствоЦеннообразованиеЧерчениеЭкологияЭконометрикаЭкономикаЭлектроникаЮриспунденкция

Практическое руководство. Определение представления числового значения в строке (Руководство по программированию в C#)




Обновлен: Ноябрь 2007

Чтобы определить, является ли строка допустимым представлением указанного числового типа, воспользуйтесь статическим методом TryParse, реализуемым всеми простыми числовыми типами, например DateTime и IPAddress. В следующем примере показано, как определить, является ли число 108 допустимым типом int.

 

Копировать код

int i = 0;

string s = "108";

bool result = int.TryParse(s, out i); //i now = 108

Если строка содержит нечисловые знаки либо числовое значение слишком велико или мало для указанного типа, TryParse возвращает значение "false" и задает выходному параметру значение "0". В противном случае возвращается значение "true", а выходному параметру задается числовое значение строки.

Примечание.
Строка может содержать только числовые знаки и оставаться недопустимой для типа, где используется метод TryParse. Например, "256" не является допустимым значением для byte, однако оно допустимо для int. "98,6" не является допустимым значением для int, однако оно допустимо для decimal.

Пример

В следующем примере показано использование TryParse со строковыми представлениями значений long, byte и decimal.

Язык C#

 

Копировать код

string numString = "1287543"; //"1287543.0" will return false for a long

long number1 = 0;

bool canConvert = long.TryParse(numString, out number1);

if (canConvert == true)

Console.WriteLine("number1 now = {0}", number1);

else

Console.WriteLine("numString is not a valid long");

 

byte number2 = 0;

numString = "255"; // A value of 256 will return false

canConvert = byte.TryParse(numString, out number2);

if (canConvert == true)

Console.WriteLine("number2 now = {0}", number2);

else

Console.WriteLine("numString is not a valid byte");

 

decimal number3 = 0;

numString = "27.3"; //"27" is also a valid decimal

canConvert = decimal.TryParse(numString, out number3);

if (canConvert == true)

Console.WriteLine("number3 now = {0}", number3);

else

Console.WriteLine("number3 is not a valid decimal");           

Отказоустойчивость

Простые числовые типы также реализуют статический метод Parse, который вызывает исключение, если строка не является допустимым числом. TryParse обычно более эффективен, поскольку он просто возвращает значение "false", если число не является допустимым.

Безопасность

Для проверки данных, введенных пользователем в такие элементы управления, как текстовые поля и поля со списком, всегда следует использовать метод TryParse или Parse.

 

Практическое руководство. Преобразование строки в значение типа "DateTime" (Руководство по программированию в C#)

Обновлен: Июль 2008

Обычно программы разрешают пользователям вводить даты в качестве значений строк. Для преобразования даты на основе строк в объект System..::.DateTime можно использовать метод Convert..::.ToDateTime(String) или статический метод DateTime..::.Parse, как показано в следующем примере.

Пример

Язык C#

 

Копировать код

// Date strings are interpreted according to the current culture.

// If the culture is en-US, this is interpreted as "January 8, 2008",

// but if the user's computer is fr-FR, this is interpreted as "August 1, 2008"

string date = "01/08/2008";

DateTime dt = Convert.ToDateTime(date);           

Console.WriteLine("Year: {0}, Month: {1}, Day: {2}", dt.Year, dt.Month, dt.Day);

 

// Specify exactly how to interpret the string.

IFormatProvider culture = new System.Globalization.CultureInfo("fr-FR", true);

 

// Alternate choice: If the string has been input by an end user, you might

// want to format it according to the current culture:

// IFormatProvider culture = System.Threading.Thread.CurrentThread.CurrentCulture;

DateTime dt2 = DateTime.Parse(date, culture, System.Globalization.DateTimeStyles.AssumeLocal);

Console.WriteLine("Year: {0}, Month: {1}, Day {2}", dt2.Year, dt2.Month, dt2.Day);

 

/* Output (assuming first culture is en-US and second is fr-FR):

Year: 2008, Month: 1, Day: 8

Year: 2008, Month: 8, Day 1

 */

 










Последнее изменение этой страницы: 2018-06-01; просмотров: 167.

stydopedya.ru не претендует на авторское право материалов, которые вылажены, но предоставляет бесплатный доступ к ним. В случае нарушения авторского права или персональных данных напишите сюда...