Откријте како ће предстојеће промене побољшати ваш код и учинити ваш живот као програмера мало лакшим.
Детаљи дуго очекиваног Ц# 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 је спреман да направи значајан корак напред, омогућавајући вам да пишете изражајнији, ефикаснији и моћнији код.