Προς το περιεχόμενο

c#, Πως να βρω τη συναρτηση μεσα σε ενα string


Evgenios1

Προτεινόμενες αναρτήσεις

Δημοσ.

Καλημερα.

Φτιαχνω ενα προγραμματακι το οποιο αποθηκευω κλασεις και συναρτισεις. Μεχρι τωρα εχω φτασει εδω

 

9qvwtrg13ekth8ydgqfy.jpg

 

Δουλευω με FlowDocument.

Τωρα θελω κατι τετιο

3hpomlap7cln923wvycc.jpg

 

Το πανω κομματι το εχω κανει, που διχνει τοις κλασεις και αν ειναι drived , base κλπ.. Προσπαθω να φτιαξω το κατω, εκει που σου διχνει τοις συναρτησεις και τα αντικειμενα. Στο προτω ειναι ευκολο, γιατι ψαχνω στο string τη λεξη class ή interface ή struct, και οταν τη βρω παω πισω να δω αν ειναι public κλπ, μετα παω μπροστα να δω αν εχει base και τελος μετραω τα block ({}) για να δω που τελειωνει. Αλλα ειναι πολυ ποιο δυσκολο να βρω μια συναρτηση μεσα στο string, εφοσον μια συναρτηση μπορει να αρχηζει με ενα τυπο που εγω δε ξερω (πχ DateTime), και δευτερον πως θα βρω καποιο αντικειμενο? Καμια ιδεα?

πχ εχω αυτο το string

>namespace ns
{
   class a
   {
       public a() { }
       internal int b;
       static object c { get; set; }
       private DependencyObject d() { return null; }
   }
}

Πως θα "βγαλω" τα αντικειμενα και τη συναρτηση?:rolleyes:

Οκ, το cntr το βγαζω ψαχνοντας το name της κλασης μεσα στο block της κλασης. Τα αλλα?

Δημοσ.

1ον Το να μετράς brackets κλπ. σημαίνει ότι δεν χρησιμοποιείς Regular Expressions στο parsing (System.Text.RegularExpressions) το οποίο είναι απαραίτητο πλέον και defacto λειτουργικό. Δες τα, θα σου κάνουν τη ζωή πιο εύκολη.

2ον Αν θέλεις να ξέρεις τα αντικείμενα, τις συναρτήσεις κλπ. είναι απλούστερο από το να ψάχνεις εσύ, να κάνεις compile τις κλάσεις που θέλεις και μετά με Reflection να βλέπεις ποιες συναρτήσεις και fields περιλαμβάνει και ό,τι άλλο γουστάρεις. Τσέκαρέ το. Δες για παράδειγμα:

http://www.codersource.net/csharp_tutorial_reflection.html

και θα καταλάβεις.

Δημοσ.
1ον Το να μετράς brackets κλπ. σημαίνει ότι δεν χρησιμοποιείς Regular Expressions στο parsing (System.Text.RegularExpressions) το οποίο είναι απαραίτητο πλέον και defacto λειτουργικό. Δες τα, θα σου κάνουν τη ζωή πιο εύκολη.

2ον Αν θέλεις να ξέρεις τα αντικείμενα, τις συναρτήσεις κλπ. είναι απλούστερο από το να ψάχνεις εσύ, να κάνεις compile τις κλάσεις που θέλεις και μετά με Reflection να βλέπεις ποιες συναρτήσεις και fields περιλαμβάνει και ό,τι άλλο γουστάρεις. Τσέκαρέ το. Δες για παράδειγμα:

http://www.codersource.net/csharp_tutorial_reflection.html

και θα καταλάβεις.

 

Δε θελω reflector, απλα εχω ενα προγραμμα στο οποιο αποθυκευω κλασεις (οχι μονο .νετ), και λεω να το αναβαθμισω. Το προγραμματακι δουλευει κανονικα απλα το interface φτιαχνω. Να φανταστεις ο,τι ειναι σαν βιβλιοθηκη, αν θελω πχ ενα κυβο σε wpf viewport3d απλα κανω ενα search "cube" category:"wpf" και τσουμ ειμαι ετυμος :-D.

Τωρα το να καλω ενα process για να κανω build κλπ και στο τελος να παρω το meothdsinfo Δεν..

Τεσπα, θα δω το RegularExpressions.( δεν εχω καμια επαφη με αυτο το namespace, θα δουμε)

Αρχειοθετημένο

Αυτό το θέμα έχει αρχειοθετηθεί και είναι κλειστό για περαιτέρω απαντήσεις.

  • Δημιουργία νέου...