Loading...

C# тилиндеги структура менен класстын ортосундагы айырма

Структура - маани түрү, класс - шилтеме түрү

Эгерде сиз программалардын иштешинин майда-чүйдөсүнө чейин кирбесеңиз, structандан негизги айырмачылык classтүзүм толугу менен стекте сакталат, ал эми класс объектиси үймөктө сакталат жана ага шилтеме стекте болот. Натыйжада, структуранын маалыматтарына жетүү класска кирүүгө караганда тезирээк эмес, тезирээк болот. Стек жана үймөк деген эмне экенин кийинчерээк сүйлөшөбүз.

Түзүмдөр мурасты колдобойт

C# класстарынан айырмаланып, структураны мурастоо колдоого алынбайт, бул мындай код катага алып келет дегенди билдирет:

@A@ struct Point3DType2 : Point3D
{ } @A@

C# тилинде структураларды (структураны) жана класстарды (класс) качан колдонуу керек

Албетте, эмнени колдонуу жакшы деген суроо, биринчи кезекте , мындай суроо берилген контексттен көз каранды, бирок Microsoftтун негизги сунушу төмөнкүчө түзүлүшү мүмкүн: структуралар (структура) колдонулушу керек, эгерде сиздин объектиңиз логикалык жактан байланышкан операциялардын минималдуу санын камтыйт же аларды такыр камтыбайт.

Мисалы, структураларды колдонуу жогоруда келтирилген мисалдарда - үч өлчөмдүү мейкиндиктеги чекиттин сүрөттөлүшүнө абдан негиздүү. Биз структурага кошо турган эң логика - бул кошуу, кемитүү жана теңдик операторлорун жокко чыгаруу.

Эгер биз, мисалы, өзүбүздүн маалымат түрүн колдонгон унааны сүрөттөөгө аракет кылсак, анда бул жерде логика эң эле тармактуу болушу мүмкүн: резервуарда күйүүчү майдын бар экендигин текшерүү, техникалык мүнөздөмөлөр, кандайдыр бир тышкы же ички факторлорго жараша абалды баалоо , жана башкалар. Демек, бул учурда структураны эмес, классты колдонуу жакшыраак болот.

Бардыгы

C# класстарындагыдай, структуралар проектиңизде ыңгайлаштырылган маалымат түрүн аныктоого мүмкүндүк берет. Ошол эле учурда, бир караганда, структуралар (структура) иш жүзүндө класстардан айырмаланбайт, бирок айырмачылыктары бар: биринчиден, структуралар нарктык типтер, экинчиден, структуралар тукум куучулук механизмдерин колдобойт. struct Түзүмдөрдү колдонуу же колдонбоо иштеп чыгуучуга көз каранды, бирок сиздин ыңгайлаштырылган маалымат түрүңүздө бизнес логикасы аз же такыр камтылган болсо гана түрүн колдонуу сунушталат .