Sobes.tech
Middle

C# да var жана dynamic арасындагы айырма эмнеде?

sobes.tech AI

AIден жооп

променли var жергиликтүү өзгөрмөлөрдүн жашырын түрдө типтөө үчүн колдонулат. Компилятор түрүн компиляциялоо этабында аныктайт.

dynamic объектилер менен иштөө үчүн колдонулат, алардын түрү гана ишке ашырылуу учурунда белгилүү болот. Түр текшерүү жана метод чакыруулар ишке ашырылуу учурунда болот.

Өзгөчөлүк var dynamic
Түрлөрү Статикалык (компиляция) Динамикалык (ишке ашыруу)
Түр текшерүү Компиляция учурунда Ишке ашыруу учурунда
Өндүрүмдүүлүк Жогорку (белгиленген түр) Төмөн (ишке ашыруу учурунда анализ талап кылынат)
Чектөөлөр Жергиликтүү өзгөрмөлөр үчүн Өзгөрмөлөр, талаалар, мүнөздөмөлөр, параметрлер үчүн
Колдонуу Ыңгайлуулук, кыскартуу үчүн COM, DLR, Reflection менен өз ара аракеттенүү үчүн

var менен мисал:

// Компилятор xтин `int` экенин аныктайт
var x = 10;
// Компиляция ката, себеби x `int` деп аныкталган
// x = "салам";

dynamic менен мисал:

// yнин түрү ишке ашырылуу учурунда аныкталат
dynamic y = 10;
// Компиляция ката жок, анткени текшерүү ишке ашырылуу учурунда болот
y = "салам";
// Метод чакыруу, ал болушу мүмкүн эмес; ката ишке ашырылуу учурунда пайда болушу мүмкүн
// y.КээБирМethoд();