Студопедия
Случайная страница | ТОМ-1 | ТОМ-2 | ТОМ-3
АрхитектураБиологияГеографияДругоеИностранные языки
ИнформатикаИсторияКультураЛитератураМатематика
МедицинаМеханикаОбразованиеОхрана трудаПедагогика
ПолитикаПравоПрограммированиеПсихологияРелигия
СоциологияСпортСтроительствоФизикаФилософия
ФинансыХимияЭкологияЭкономикаЭлектроника

Преобразование типов - класс Convert(http://msdn.microsoft.com/ru-ru/library/system.convert.aspx ) Библиотека классов платформы .NET Framework



Преобразование типов - класс Convert
(http://msdn.microsoft.com/ru-ru/library/system.convert.aspx)
Библиотека классов платформы.NET Framework

 

Преобразует значение одного базового типа данных к другому базовому типу данных.

Пространство имен: System

 

 

Синтаксис

Язык C#

public static class Convert

 

Заметки

Этот класс возвращает тип, значение которого эквивалентно значению заданного типа. Поддерживаются следующие базовые типы: Boolean, Char, SByte, Byte, Int16, Int32, Int64, UInt16, UInt32, UInt64, Single, Double, Decimal, DateTime и String.

Существует метод преобразования любого базового типа в любой другой базовый тип. Однако реальный вызов конкретного метода преобразования может выдавать один из четырех разных результатов в зависимости от значения базового типа во время выполнения и от целевого базового типа. Эти четыре результата таковы.

· от типа Char к типу Boolean, Single, Double, Decimal или DateTime;

· от типа Boolean, Single, Double, Decimal или DateTime к типу Char;

· от типа DateTime к любому другому типу кроме String;

· от любого типа кроме String к типу DateTime.

Исключение не выбрасывается, если в результате преобразования числового типа происходит потеря точности (то есть, утрачиваются последние значащие цифры). Однако исключение выбрасывается, если результат превышает максимально допустимое значение для типа, возвращаемого данным методом преобразования.

Например, при преобразовании от типа Double к типу Single может происходить потеря точности, но исключение не выбрасывается. Однако, если значение типа Double слишком велико для представления в виде значения типа Single, выбрасывается исключение переполнения.



Ряд методов поддерживает преобразование массива байтов к типу String или в массив символов Юникод, состоящий из цифровых символов в кодировке Base64, а также обратное преобразование. Данные, выраженные как цифры в кодировке Base64, могут легко быть переданы по каналам данных, поддерживающим передачу только 7-битовых символов.

Некоторые методы данного класса принимают в качестве параметра объект, реализующий интерфейс IFormatProvider. В этом параметре могут быть переданы используемые при выполнении преобразования сведения об особенностях форматирования, связанных с языком и региональными параметрами. Базовые типы значений игнорируют этот параметр, но он может учитываться любым пользовательским типом, реализующим интерфейс IConvertible.

Дополнительные сведения о базовых типах значений см. в соответствующем разделе, указанном в подразделе "См. также".

Примеры

В данном примере кода демонстрируются некоторые методы класса Convert, предназначенные для выполнения преобразования, включая методы ToInt32, ToBoolean и ToString.

Язык C#

double dNumber = 23.15;

 

try {

// Returns 23

int iNumber = System.Convert.ToInt32(dNumber);

}

catch (System.OverflowException) {

System.Console.WriteLine(

"Overflow in double to int conversion.");

}

// Returns True

bool bNumber = System.Convert.ToBoolean(dNumber);

 

// Returns "23.15"

string strNumber = System.Convert.ToString(dNumber);

 

try {

// Returns '2'

char chrNumber = System.Convert.ToChar(strNumber[0]);

}

catch (System.ArgumentNullException) {

System.Console.WriteLine("String is null");

}

catch (System.FormatException) {

System.Console.WriteLine("String length is greater than 1.");

}

 

// System.Console.ReadLine() returns a string and it

// must be converted.

int newInteger = 0;

try {

System.Console.WriteLine("Enter an integer:");

newInteger = System.Convert.ToInt32(

System.Console.ReadLine());

}

catch (System.ArgumentNullException) {

System.Console.WriteLine("String is null.");

}

catch (System.FormatException) {

System.Console.WriteLine("String does not consist of an " +

"optional sign followed by a series of digits.");

}

catch (System.OverflowException) {

System.Console.WriteLine(

"Overflow in string to int conversion.");

}

 

System.Console.WriteLine("Your integer as a double is {0}",

System.Convert.ToDouble(newInteger));

В следующем примере кода демонстрируется применение нескольких методов преобразования, входящих в состав класса Convert.

Язык C#

// Sample for the Convert class summary.

using System;

 

class Sample

{

public static void Main()

{

string nl = Environment.NewLine;

string str = "{0}Return the Int64 equivalent of the following base types:{0}";

bool xBool = false;

short xShort = 1;

int xInt = 2;

long xLong = 3;

float xSingle = 4.0f;

double xDouble = 5.0;

decimal xDecimal = 6.0m;

string xString = "7";

char xChar = '8'; // '8' = hexadecimal 38 = decimal 56

byte xByte = 9;

 

// The following types are not CLS-compliant.

ushort xUshort = 120;

uint xUint = 121;

ulong xUlong = 122;

sbyte xSbyte = 123;

 

// The following type cannot be converted to an Int64.

// DateTime xDateTime = DateTime.Now;

 

Console.WriteLine(str, nl);

Console.WriteLine("Boolean: {0}", Convert.ToInt64(xBool));

Console.WriteLine("Int16: {0}", Convert.ToInt64(xShort));

Console.WriteLine("Int32: {0}", Convert.ToInt64(xInt));

Console.WriteLine("Int64: {0}", Convert.ToInt64(xLong));

Console.WriteLine("Single: {0}", Convert.ToInt64(xSingle));

Console.WriteLine("Double: {0}", Convert.ToInt64(xDouble));

Console.WriteLine("Decimal: {0}", Convert.ToInt64(xDecimal));

Console.WriteLine("String: {0}", Convert.ToInt64(xString));

Console.WriteLine("Char: {0}", Convert.ToInt64(xChar));

Console.WriteLine("Byte: {0}", Convert.ToInt64(xByte));

Console.WriteLine("DateTime: There is no example of this conversion because");

Console.WriteLine(" a DateTime cannot be converted to an Int64.");

//

Console.WriteLine("{0}The following types are not CLS-compliant.{0}", nl);

Console.WriteLine("UInt16: {0}", Convert.ToInt64(xUshort));

Console.WriteLine("UInt32: {0}", Convert.ToInt64(xUint));

Console.WriteLine("UInt64: {0}", Convert.ToInt64(xUlong));

Console.WriteLine("SByte: {0}", Convert.ToInt64(xSbyte));

}

}

/*

This example produces the following results:

 

Return the Int64 equivalent of the following base types:

 

Boolean: 0

Int16: 1

Int32: 2

Int64: 3

Single: 4

Double: 5

Decimal: 6

String: 7

Char: 56

Byte: 9

DateTime: There is no example of this conversion because

a DateTime cannot be converted to an Int64.

 

The following types are not CLS-compliant.

 

UInt16: 120

UInt32: 121

UInt64: 122

SByte: 123

*/

 

Ссылки

Convert - члены

System - пространство имен

Object

SByte

Int16

Int32

Int64

Byte

UInt16

UInt32

UInt64

Single

Double

Decimal

Boolean

Char

String

 

 


Дата добавления: 2015-11-04; просмотров: 24 | Нарушение авторских прав




<== предыдущая лекция | следующая лекция ==>
 | 

mybiblioteka.su - 2015-2024 год. (0.031 сек.)