Откријте како ће предстојеће промене побољшати ваш код и учинити ваш живот као програмера мало лакшим.

Детаљи дуго очекиваног Ц# 12 Превиев-а су процурили, дајући кратак поглед у предстојеће функције које би требало да револуционишу језик. Ове карактеристике обећавају велико побољшање читљивости кода, оптимизацију перформанси и откључавање напредних могућности језика.

Побољшани изрази прекидача

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

Размотрите следећи исечак кода.

вар резултат = обј прекидач
{
инт и када и > 0 => "позитивно",
инт и када и < 0 => "негативно",
_ => "Нула"
};

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

вар резултат = обј прекидач
{
> 0 => "позитивно",
< 0 => "негативно",
_ => "Нула"
};

Ова синтакса вам омогућава да изоставите када кључну реч и користе релационе операторе директно у свитцх изразу.

Примарни конструктори за класе и структуре

Сада можете креирати примарне конструкторе у било ком класа или струцт (алтернатива лаке класе). Користећи примарне конструкторе, можете додати параметре у декларацију класе и користити ове вредности унутар тела класе.

Ц# 9 је увео примарне конструкторе као део позиционе синтаксе за записе. Ц# 12 их проширује на све структуре и класе.

Можете ставити параметре иза назива типа у заградама као што је приказано у наставку:

јавности класа Ученик(инт ид, низ име, ИЕнумерабле<децималан> оцене)
{
јавностиУченик(инт ид, низ име): ово(ид, име, Енумерабле. Празно<децималан>()) { }
јавностиинт Ид => ид;
јавностиниз име { добити; комплет; } = име. Трим();
јавностидецималан ГПА => оцене. Било који()? оцене. Просек(): 4.0м;
}

Параметри примарног конструктора су у опсегу у целом телу декларисаног типа. Можете подесити својства или поља или их такође можете користити у методама или локалним функцијама као променљиве. Ове параметре можете дати и основном конструктору.

Побољшања интерполираних стрингова

Интерполирани низови постоје још од Ц# 6. У Ц# 12 сада можете креирати динамичке вредности за стрингове користећи компликоване изразе.

инт и = 5;
низ излаз = $"Вредност и је {и}, а њен квадрат је {и*и}.";
Конзола. ВритеЛине (излаз);

Овај код штампа „Вредност и је 5, а квадрат је 25“.

Коришћење директива за додатне типове

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

Ево неколико примера:

Користећи Мерење = (низ Јединице, инт Удаљеност);
Користећи УнитсИнт = инт?;
Пример употребе алијаса:
јавностипразнинаКалкулација(Мерење мерења)
{
// Метход Боди
}

Побољшања ламбда експресије

Ц# 12 омогућава ламбда изразе тако што вам омогућава да дефинишете подразумеване вредности за параметре. Синтакса је идентична као код других подразумеваних параметара:

На пример, (инт инцрементТо = 5) => инцрементТо + 1 поставља подразумевану вредност 5 за параметар инцрементТо, који ће ламбда позив користити ако му не проследите вредност.

вар инцрементВитхДефаулт = (инт инцрементТо = 5) => инцрементТо + 1;
инцрементВитхДефаулт(); // 6
инцрементВитхДефаулт(9); // 10

Осим тога, многа друга побољшања су дошла до ламбда израза како би били ефикаснији.

На пример:

  • Сада можете креирати сложеније изразе унутар ламбда функција.
  • Сада можете да трансформишете ламбда изразе у стабла израза која поједностављују сложене упите и оптимизују перформансе.

Асинц Стреамс

Можете итерирати кроз асинхроне изворе података са новим асинхронизовани токови карактеристика Ц# 12. Овај нови итератор—аваит фореацх—помаже вам да пређете преко скупа асинхронизованих података:

чекатиза сваки (вар предмет инГетИтемсАсинц())
{
Конзола. ВритеЛине (став.вредност);
}

Ц# 12: Револуционисање кода са узбудљивим новим карактеристикама

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

Ц# 12 је спреман да направи значајан корак напред, омогућавајући вам да пишете изражајнији, ефикаснији и моћнији код.