See artikkel on masintõlke peegelartikkel, palun klõpsake siia, et hüpata algse artikli juurde.

Vaade: 54151|Vastuse: 3

[Allikas] .NET/C# Peegeldus-, emissiooni- ja väljendustestimine

[Kopeeri link]
Postitatud 2021-3-21 13:23:34 | | | |
Ülevaade artiklitest mõtiskluste kohta:

.net/c# kasutab reflektsioonidünaamilise täitmise meetodit
https://www.itsvse.com/thread-4771-1-1.html

C# kasutab peegeldust, et määrata, kas omadus on määratud
https://www.itsvse.com/thread-3045-1-1.html

C# peegeldus saab objekti omaduse kuvanime
https://www.itsvse.com/thread-3219-1-1.html
EMIT Review kohta:

.NET/C# Emit genereerib dünaamiliselt kokkupanekuid
https://www.itsvse.com/thread-9597-1-1.html
Esiteks loo lihtne objekt, instantsieeri objekt ning kasuta emissiooni ja väljendit objekti väärtuse lugemiseks ja muutmiseks, ning näed, et täitmise tulemus on ootuspärane, nagu alloleval joonisel näidatud:



Benchmark, kasutades BenchmarkDotNeti võrdluseks, lugedes ainult objektiväärtusi testimiseks, töötades Net472 ja NetCoreApp31 peal, testitulemused on järgmised:


.NET/C# kasutab BenchmarkDotNeti koodi jõudluse testimiseks
https://www.itsvse.com/thread-9576-1-1.html


Kokkuvõte:

Nii emit kui ka expression on efektiivsemad kui peegelduse kasutamine väärtuste saamiseks ning .NET 4.7.2 raamistikus on emit parem kui väljenduse täitmise efektiivsus, kuid .NET Core 3.1 raamistikus on väljendus parem kui emissiooni täitmine.

Kui su programm peab dünaamiliselt täitma objekti vaid korra, soovitatakse kasutada peegeldust (lõppude lõpuks pole vaja uuesti kapseldada ega delegaati luua), ja kui programm peab dünaamiliselt objekti mitu korda käivitama, soovitatakse kasutada emitteri või expressionit, ning loomulikult on vaja täiendavat kapseldamist.

Testkood on järgmine:

Kui kasutatakse Expressioni objektiväärtuste saamiseks, raporteeritakse viga järgmiselt:

Tüüpi avaldist 'System.Int32' ei saa kasutada tagastustüübi 'System.Object' jaoks
Ma tõesti ei tea, kuidas need inimesed seda kasutavad, nad oskavad ainult kopeerida ja kleepida!




Eelmine:.NET/C# Emit genereerib dünaamiliselt kokkupanekuid
Järgmine:.NET Core kutsub gRPC HTTP (mitte-TLS kaitstud) aadressivealahendusi
 Üürileandja| Postitatud 2025-4-28 14:53:41 |
Kasuta Expressionit, et määrata väärtusi objekti omadustele:


Helista:
 Üürileandja| Postitatud 2025-4-28 15:32:51 |
.NET/C# Kasuta UnsafeAccessorit ainult lugemisvälja sisu muutmiseks
https://www.itsvse.com/thread-10997-1-1.html
 Üürileandja| Postitatud 2025-4-28 15:40:57 |
Disclaimer:
Kõik Code Farmer Networki poolt avaldatud tarkvara, programmeerimismaterjalid või artiklid on mõeldud ainult õppimiseks ja uurimistööks; Ülaltoodud sisu ei tohi kasutada ärilistel ega ebaseaduslikel eesmärkidel, vastasel juhul kannavad kasutajad kõik tagajärjed. Selle saidi info pärineb internetist ning autoriõiguste vaidlused ei ole selle saidiga seotud. Ülaltoodud sisu tuleb oma arvutist täielikult kustutada 24 tunni jooksul pärast allalaadimist. Kui sulle programm meeldib, palun toeta originaaltarkvara, osta registreerimist ja saa paremaid ehtsaid teenuseid. Kui esineb rikkumist, palun võtke meiega ühendust e-posti teel.

Mail To:help@itsvse.com