Šis raksts ir mašīntulkošanas spoguļraksts, lūdzu, noklikšķiniet šeit, lai pārietu uz oriģinālo rakstu.

Skats: 54151|Atbildi: 3

[Avots] .NET/C# atstarošana, izstarošana, izteiksmes veiktspējas testēšana

[Kopēt saiti]
Publicēts 2021-3-21 13:23:34 | | | |
Rakstu pārskats par pārdomām:

.net/c# izmanto atstarošanas dinamiskās izpildes metodes priekšrocības
https://www.itsvse.com/thread-4771-1-1.html

C# izmanto atstarošanu, lai noteiktu, vai rekvizīts ir piešķirts
https://www.itsvse.com/thread-3045-1-1.html

C# atspulgs iegūst objekta rekvizīta parādāmo nosaukumu
https://www.itsvse.com/thread-3219-1-1.html
Par EMIT pārskatu:

.NET/C# Izstaro dinamiski ģenerē komplektus
https://www.itsvse.com/thread-9597-1-1.html
Pirmkārt, izveidojiet vienkāršu objektu, instancējiet objektu un izmantojiet izstarošanu un izteiksmi, lai lasītu un modificētu objekta vērtību, un jūs varat redzēt, ka izpildes rezultāts ir tāds, kā paredzēts, kā parādīts zemāk redzamajā attēlā:



Etalons, izmantojot BenchmarkDotNet salīdzinošai novērtēšanai, tikai objektu vērtību lasīšana testēšanai, darbojas Net472 un NetCoreApp31, testa rezultāti ir šādi:


.NET/C# izmanto BenchmarkDotNet, lai pārbaudītu koda veiktspēju
https://www.itsvse.com/thread-9576-1-1.html


Kopsavilkuma:

Gan izstarošana, gan izteiksme ir efektīvāka nekā atspoguļojuma izmantošana, lai iegūtu vērtības, un .NET 4.7.2 sistēmā izstarošana ir labāka nekā izteiksmes izpildes efektivitāte, bet .NET Core 3.1 sistēmā izteiksme ir labāka nekā izstarošanas izpilde.

Ja jūsu programmai ir nepieciešams dinamiski izpildīt objektu tikai vienu reizi, ieteicams izmantot atspoguļojumu (galu galā nav nepieciešams vēlreiz iekapsulēt vai izveidot pārstāvi), un, ja jūsu programmai ir nepieciešams dinamiski izpildīt objektu vairākas reizes, ieteicams izmantot izstarošanu vai izteiksmi, un, protams, ir nepieciešama papildu iekapsulēšana.

Testa kods ir šāds:

Izmantojot izteiksmi, lai iegūtu objekta vērtības, kļūda tiks ziņota šādi:

Tipa 'System.Int32' izteiksmi nevar izmantot atgrieztajam tipam 'System.Object'
Es tiešām nezinu, kā šie cilvēki to izmanto, viņi zina tikai kopēt un ielīmēt!




Iepriekšējo:.NET/C# Izstaro dinamiski ģenerē komplektus
Nākamo:.NET Core izsauc gRPC HTTP (kas nav aizsargāts ar TLS) adreses kļūdu risinājumi
 Saimnieks| Publicēts 2025-4-28 14:53:41 |
Izmantojiet izteiksmi, lai piešķirtu vērtības objekta rekvizītiem:


Zvaniet:
 Saimnieks| Publicēts 2025-4-28 15:32:51 |
.NET/C# Izmantojiet UnsafeAccessor, lai modificētu tikai lasāmā lauka saturu
https://www.itsvse.com/thread-10997-1-1.html
 Saimnieks| Publicēts 2025-4-28 15:40:57 |
Atruna:
Visa programmatūra, programmēšanas materiāli vai raksti, ko publicē Code Farmer Network, ir paredzēti tikai mācību un pētniecības mērķiem; Iepriekš minēto saturu nedrīkst izmantot komerciāliem vai nelikumīgiem mērķiem, pretējā gadījumā lietotājiem ir jāuzņemas visas sekas. Informācija šajā vietnē nāk no interneta, un autortiesību strīdiem nav nekāda sakara ar šo vietni. Iepriekš minētais saturs ir pilnībā jāizdzēš no datora 24 stundu laikā pēc lejupielādes. Ja jums patīk programma, lūdzu, atbalstiet oriģinālu programmatūru, iegādājieties reģistrāciju un iegūstiet labākus oriģinālus pakalpojumus. Ja ir kādi pārkāpumi, lūdzu, sazinieties ar mums pa e-pastu.

Mail To:help@itsvse.com