Читаоци попут вас помажу у подршци МУО. Када обавите куповину користећи везе на нашем сајту, можда ћемо зарадити провизију за партнере. Опширније.

Када декларишете нову променљиву у Ц#, обично ћете је иницијализовати одређеним типом података. Ово може бити цео број, децимални, логички, стринг или други тип података.

Можете да конвертујете вредност из једног типа података у други. На пример, ако конвертујете стринг у цео број, прво ћете морати да рашчланите вредност. Ево неколико различитих начина на које можете да конвертујете и анализирате вредности.

Зашто треба да конвертујете или рашчланите податке?

Пример када ћете можда морати да рашчланите податке је ако захтевате унос од корисника у Ц# конзолној апликацији:

Конзола. ВритеЛине("Унесите своје године:");
стринг плата = Конзола. РеадЛине();

У овом случају, корисник ће унети целобројну вредност, али ће је апликација подразумевано сачувати као стринг. Ако сте покушали да користите вредност стринга у било ком прорачуну, добићете грешку при компилацији:

Други разлог за конверзију типова података је приступ одређеним методама које су доступне само за одређени тип података. На пример, структура ДатеТиме садржи функцију која вам омогућава да додате минуте. Ако бисте уместо тога користили стринг, не бисте имали приступ методу:

Можда ћете желети и да конвертујете вредност у други тип података ако је потребно да пратите структуру типа података а класа креирана у Ц# или а структура у Ц#.

Како конвертовати и рашчланити различите типове података

Можете рашчланити различите типове података као што су цели бројеви, двоструки, логички типови и типови датума и времена.

Стринг у целим бројевима

Да бисте конвертовали стринг у цео број, користите метод Парсе():

стринг стрИнт = "45";
инт инт32 = Инт32.Парсе (стрИнт);
Конзола. ВритеЛине (инт32); // излаз: 45

Такође можете да рашчланите стринг на целе бројеве различитих величина битова, као што су Инт16, Инт32 или Инт64.

инт инт16 = Инт16.Парсе (стрИнт);
Конзола. ВритеЛине (инт16); // излаз: 45

Ако користите метод Парсе(), уверите се да вредност стринга представља цео број. Ако покушате да рашчланите вредност која није целобројна, као што је „Здраво“, добићете грешку при рашчлањивању током извршавања.

стринг инвалидСтринг = "Здраво";
инт инвалидРесулт = Инт32.Парсе (инвалидСтринг);

Такође можете да користите метод ТриПарсе() да ухватите све изузетке који би могли да настану приликом рашчлањивања:

инт триПарсеРесулт = 0;

ако (Инт32.ТриПарсе(инвалидСтринг, оуттриПарсеРесулт))
{
Конзола.ВритеЛине(триПарсеРесулт);
}
друго
{
Конзола. ВритеЛине("Нешто није у реду");
}

Да бисте конвертовали цео број назад у стринг, користите метод ТоСтринг():

стринг интСтринг = 45.ТоСтринг();
Конзола. ВритеЛине (интСтринг); // излаз: 45

Стрингс то Доублес

Рашчлањивање стринга до двоструког је веома слично рашчлањивању једног на цео број. Користите метод Парсе() из класе Доубле:

стринг стрДоубле = "90.5";
дупло д = дупло. Парсе (стрДоубле);
Конзола. ВритеЛине (д); // излаз: 90.5

Као и код целих бројева, такође можете да користите метод ТриПарсе() да ухватите све грешке рашчлањивања које би могле да се појаве:

стринг инвалидСтрингДоубле = "Здраво";
дупло триПарсеДоубле = 0;

ако (Двоструко.ТриПарсе(инвалидСтрингДоубле, оуттриПарсеДоубле))
{
Конзола.ВритеЛине(триПарсеДоубле);
}

Да бисте дупло назад претворили у цео број, користите метод ТоСтринг():

дупло дДоубле = 90.5;
стринг дСтринг = дДоубле. ТоСтринг();
Конзола. ВритеЛине (дСтринг); // излаз: 90.5

Удвостручује се целим бројевима

Можете да користите превођење да конвертујете дупли у цео број. Пошто цео број чува само цео број, конверзија ће уклонити децимална места. На пример, конверзија „12.34“ ће сачувати само вредност „12“.

дупло дВалуе = 12.34;
инт иВалуе = (инт)дВалуе;
Конзола. ВритеЛине (иВалуе); // излаз: 12

Такође можете вратити цео број на дупли:

дВалуе = (дупло)ценим;
Конзола. ВритеЛине (дВалуе); // излаз: 12

Стрингови и логичке вредности

Да бисте конвертовали стринг у логички, користите метод Парсе() или ТоБоолеан():

стринг стрингБоол = "Истина";
боол б = боол. Парсе (стрингБоол);

// или

б = Претвори. ТоБоолеан (стрингБоол);
Конзола. ВритеЛине (б); // излаз: истина

Да бисте претворили логичку вредност назад у стринг, користите метод ТоСтринг():

стринг стрТруе = истина.ТоСтринг();
стринг стрФалсе = лажно.ТоСтринг();

Цели бројеви и логичке вредности

Да бисте конвертовали цео број у логичку вредност, користите метод ТоБоолеан() да бисте конвертовали „1“ или „0“ у његову еквивалентну логичку вредност. Вредност "1" ће се претворити у "тачно" док се "0" претвара у "нетачно":

инт фалсеБит = 0;
инт труеБит = 1;
Конзола. ВритеЛине (Претвори. ТоБоолеан (фалсеБит)); // излаз: нетачно
Конзола. ВритеЛине (Претвори. ТоБоолеан (труеБит)); // излаз: истина

Такође можете проследити целобројну вредност која није „1“ или „0“ методи ТоБоолеан(). Подразумевано, метод ће и даље вратити "труе":

инт инвалидБит = 8;
Конзола. ВритеЛине (Претвори. ТоБоолеан (инвалидБит)); // излаз: истина

Да бисте претворили логичку вредност назад у цео број, користите Цонверт. Метода ТоИнт32(). Конвертовањем „тачно“ вратиће се „1“, а конвертовањем „нетачно“ ће се вратити „0“.

боол иБоол = истина;
инт бИнт = Претвори. ТоИнт32(иБоол);
Конзола. ВритеЛине (бИнт); // излаз: 1

Стрингови за датум и време

Да бисте рашчланили стринг у формат датума и времена, користите ДатеТиме. Парсе() метода:

ДатеТиме невДатеТиме = ДатумТиме. Парсе("01/01/2018 00:00:00");
Конзола. ВритеЛине (невДатеТиме); // излаз: 01/01/2018 00:00:00

Да бисте конвертовали датум и време назад у стринг, користите метод ТоСтринг():

Датум и време дт = Нова Датум време(2018, 1, 1);
стринг дтСтринг = дт. ТоСтринг();
Конзола. ВритеЛине (дтСтринг); // излаз: 01/01/2018 00:00:00

Рашчлањивање вредности на различите типове података

Сада разумете како да конвертујете вредности из једног типа података у други. Ово нису једине конверзије које постоје, па слободно сазнајте више о другим типовима података у Ц#.

Такође можете истражити како други типови података функционишу на другим језицима, као што је ЈаваСцрипт.