Αυτό το άρθρο είναι ένα άρθρο καθρέφτη της αυτόματης μετάφρασης, κάντε κλικ εδώ για να μεταβείτε στο αρχικό άρθρο.

Άποψη: 54151|Απάντηση: 3

[Πηγή] .NET/C# Δοκιμή απόδοσης ανάκλασης, εκπομπής, έκφρασης

[Αντιγραφή συνδέσμου]
Δημοσιεύτηκε στις 2021-3-21 13:23:34 | | | |
Ανασκόπηση άρθρων σχετικά με τους προβληματισμούς:

Το .net/c# εκμεταλλεύεται τη μέθοδο δυναμικής εκτέλεσης ανάκλασης
https://www.itsvse.com/thread-4771-1-1.html

Η C# χρησιμοποιεί αντανάκλαση για να προσδιορίσει εάν έχει εκχωρηθεί μια ιδιότητα
https://www.itsvse.com/thread-3045-1-1.html

Η αντανάκλαση C# λαμβάνει το εμφανιζόμενο όνομα της ιδιότητας αντικειμένου
https://www.itsvse.com/thread-3219-1-1.html
Σχετικά με το EMIT Review:

.NET/C# Το Emit δημιουργεί δυναμικά συγκροτήματα
https://www.itsvse.com/thread-9597-1-1.html
Αρχικά, δημιουργήστε ένα απλό αντικείμενο, δημιουργήστε το αντικείμενο και χρησιμοποιήστε το emit και την έκφραση για να διαβάσετε και να τροποποιήσετε την τιμή του αντικειμένου και μπορείτε να δείτε ότι το αποτέλεσμα εκτέλεσης είναι το αναμενόμενο, όπως φαίνεται στο παρακάτω σχήμα:



Συγκριτική αξιολόγηση με χρήση BenchmarkDotNet για συγκριτική αξιολόγηση, ανάγνωση μόνο τιμών αντικειμένων για δοκιμή, εκτέλεση σε Net472 και NetCoreApp31, τα αποτελέσματα των δοκιμών είναι τα εξής:


Το .NET/C# χρησιμοποιεί το BenchmarkDotNet για να ελέγξει την απόδοση του κώδικα
https://www.itsvse.com/thread-9576-1-1.html


Περίληψη:

Τόσο η εκπομπή όσο και η έκφραση είναι πιο αποτελεσματικές από τη χρήση αντανάκλασης για τη λήψη τιμών και στο πλαίσιο .NET 4.7.2, το emit είναι καλύτερο από την αποτελεσματικότητα εκτέλεσης έκφρασης, αλλά στο πλαίσιο .NET Core 3.1, η έκφραση είναι καλύτερη από την εκτέλεση εκπομπής.

Εάν το πρόγραμμά σας χρειάζεται να εκτελέσει δυναμικά ένα αντικείμενο μόνο μία φορά, συνιστάται η χρήση ανάκλασης (εξάλλου, δεν χρειάζεται να ενθυλακώσετε ξανά ή να δημιουργήσετε έναν εκπρόσωπο) και εάν το πρόγραμμά σας χρειάζεται να εκτελέσει δυναμικά ένα αντικείμενο πολλές φορές, συνιστάται η χρήση εκπομπής ή έκφρασης και φυσικά απαιτείται περαιτέρω ενθυλάκωση.

Ο κωδικός δοκιμής έχει ως εξής:

Όταν χρησιμοποιείτε την Παράσταση για τη λήψη τιμών αντικειμένων, το σφάλμα θα αναφέρεται ως εξής:

Η έκφραση τύπου «System.Int32» δεν μπορεί να χρησιμοποιηθεί για τον τύπο επιστροφής «System.Object»
Πραγματικά δεν ξέρω πώς το χρησιμοποιούν αυτοί οι άνθρωποι, ξέρουν μόνο να κάνουν αντιγραφή και επικόλληση!




Προηγούμενος:.NET/C# Το Emit δημιουργεί δυναμικά συγκροτήματα
Επόμενος:Το .NET Core καλεί λύσεις σφαλμάτων διεύθυνσης gRPC HTTP (χωρίς προστασία TLS)
 Σπιτονοικοκύρης| Δημοσιεύτηκε στις 2025-4-28 14:53:41 |
Χρησιμοποιήστε την Έκφραση για να αντιστοιχίσετε τιμές σε ιδιότητες αντικειμένου:


Κλήση:
 Σπιτονοικοκύρης| Δημοσιεύτηκε στις 2025-4-28 15:32:51 |
.NET/C# Χρησιμοποιήστε το UnsafeAccessor για να τροποποιήσετε τα περιεχόμενα του πεδίου μόνο για ανάγνωση
https://www.itsvse.com/thread-10997-1-1.html
 Σπιτονοικοκύρης| Δημοσιεύτηκε στις 2025-4-28 15:40:57 |
Αποκήρυξη:
Όλο το λογισμικό, το υλικό προγραμματισμού ή τα άρθρα που δημοσιεύονται από το Code Farmer Network προορίζονται μόνο για μαθησιακούς και ερευνητικούς σκοπούς. Το παραπάνω περιεχόμενο δεν θα χρησιμοποιηθεί για εμπορικούς ή παράνομους σκοπούς, άλλως οι χρήστες θα υποστούν όλες τις συνέπειες. Οι πληροφορίες σε αυτόν τον ιστότοπο προέρχονται από το Διαδίκτυο και οι διαφορές πνευματικών δικαιωμάτων δεν έχουν καμία σχέση με αυτόν τον ιστότοπο. Πρέπει να διαγράψετε εντελώς το παραπάνω περιεχόμενο από τον υπολογιστή σας εντός 24 ωρών από τη λήψη. Εάν σας αρέσει το πρόγραμμα, υποστηρίξτε γνήσιο λογισμικό, αγοράστε εγγραφή και λάβετε καλύτερες γνήσιες υπηρεσίες. Εάν υπάρχει οποιαδήποτε παραβίαση, επικοινωνήστε μαζί μας μέσω email.

Mail To:help@itsvse.com