Выполнение явных преобразований с помощью команд преобразования


 

Существует множество специальных команд явных преобразований (см. табл.). Здесь val может быть переменной почти любого типа. Если не может быть обработана данными командами, то компилятор выдаст соответствующее сообщение.

 

Команда коллекции Convert val преобразовано в
.ToBoolean(val) bool
.ToByte(val) byte
.ToChar(val) char
.ToDecimal(val) decimal
.ToDouble(val) double
.ToInt16(val) short
.ToInt32(val) int
.ToInt64(val) long
.ToSByte(val) sbyte
.ToSingle(val) float
.ToString(val) string
.ToUInt16(val) ushort
.ToUInt32(val) uint
.ToUInt64(val) ulong

 

Здесь имена команд преобразования несколько отличаются от названий типов, принятых в С#; например, для того чтобы произвести преобразование в тип int, следует использовать команду Convert.Tolnt32(). Это объясняется тем, что имена в командах Пространства Имен System.NET Framework и не являются родными для С#. Зато благодаря этому их можно использовать из любых других языков, совместимых с .NET.

 

Рассмотрим пример использования всех видов преобразований типов:

 

static void Main(string[] args)

{

short shortResult, shortVal = 4;

int integerVal = 67;

long longResult;

float floatVal = 10.5F;

double doubleResult, doubleVal = 99.999;

string stringResult, stringVal = "17";

bool boolVal = true;

 

doubleResult = floatVal * shortVal;

Console.WriteLine("Неявно -> double: {0} * {1} -> {2}", floatVal, shortVal, doubleResult);

shortResult = (short)floatVal;

Console.WriteLine("Явно -> short: {0} -> {1}", floatVal, shortResult);

stringResult = Convert.ToString(boolVal) + Convert.ToString(doubleVal);

Console.WriteLine("Явно -> string: \"{0}\" + \"{1}\" -> {2}", boolVal, doubleVal, stringResult);

longResult = integerVal + Convert.ToInt64(stringVal);

Console.WriteLine("Смешанно -> long: {0} + {1} -> {2}", integerVal, stringVal, longResult);

Console.ReadKey();

}

 

 

Результат выполнения программы:

 

Неявно -> double: 10,5 * 4 -> 42

Явно -> short: 10,5 -> 10

Явно -> string: "True" + "99,999" -> True99,999

Смешанно -> long: 67 + 17 -> 84

Здесь видно, что преобразования типов выполняются:

­ при определении литералов-констант (10.5F);

­ при выполнении операции присваивания;

­ при вычислении значений выражений (floatVal * shortVal).

 

Выполнение любого не унарного оператора может привести к преобразованию типов.

 

В приведенном примере перемножаются значения типа short и типа float. В подобных ситуациях, когда выполнение преобразования явно не указано, если это возможно, будет выполняться неявное преобразование. В данном примере выполняется преобразование short в значение типа float, поскольку преобразование из float в short должно задаваться явно, например, так: (short)floatVal * shortVal.

 



Дата добавления: 2021-12-14; просмотров: 303;


Поиск по сайту:

Воспользовавшись поиском можно найти нужную информацию на сайте.

Поделитесь с друзьями:

Считаете данную информацию полезной, тогда расскажите друзьям в соц. сетях.
Poznayka.org - Познайка.Орг - 2016-2024 год. Материал предоставляется для ознакомительных и учебных целей.
Генерация страницы за: 0.01 сек.