Level Extreme platform
Subscription
Corporate profile
Products & Services
Support
Legal
Français
Equivalent to eval()
Message
From
28/03/2010 22:23:19
 
 
To
28/03/2010 20:55:18
General information
Forum:
ASP.NET
Category:
Coding, syntax and commands
Miscellaneous
Thread ID:
01457734
Message ID:
01457763
Views:
52
And thanks again. I tested it in my app and it does *exactly* what I want. This is a very very useful function and is going into my permanent util library.

Foxpro folks moving to .NET should pay attention to this one as it is one of the trickiest things I've found in terms of something that works so easily in Fox and just appears mystical in .NET.

>>I have a number of properties which are objects ( business objects )
>>
>>If I have string which is the same as the name of one of those properties I would like to find the value of a property of the corresponding object.
>>
>>in VFP
>>
>>*property is called _Propmaster
>>
>>varstr = "Propmaster"
>>prop = "_"+varstr+".count"
>>
>>mycount = eval(prop)
>>
>>
>>Looking for a technique that will accomplish the same thing in .NET
>
>As you might have found, there is no evaluate in .NET. Here is what you need:
>
>
>        ' Return a reference to a control by the use of its name
>        ' expO1 Form
>        ' expC1 Name of the control
>        Public Function FindControlByFieldName(ByVal loForm As System.Windows.Forms.Form, ByVal tcProperty As String) As Object
>            Dim loFieldInfo As System.Reflection.FieldInfo = Nothing
>            Dim loObject As Object = Nothing
>            Dim loPropertyInfo As System.Reflection.PropertyInfo = Nothing
>            Dim loType As System.Type = Nothing
>
>            ' Get the form type
>            loType = loForm.GetType()
>
>            ' Get the property info
>            loPropertyInfo = loType.GetProperty(tcProperty, System.Reflection.BindingFlags.Public Or _
>             System.Reflection.BindingFlags.NonPublic Or System.Reflection.BindingFlags.Instance Or _
>             System.Reflection.BindingFlags.DeclaredOnly)
>
>            ' If the property info is known as an object
>            If Not loPropertyInfo Is Nothing Then
>                Return loPropertyInfo.GetValue(loForm, Nothing)
>            End If
>
>            ' Get the field info
>            loFieldInfo = loType.GetField(tcProperty, System.Reflection.BindingFlags.Public Or _
>             System.Reflection.BindingFlags.NonPublic Or System.Reflection.BindingFlags.Instance Or _
>             System.Reflection.BindingFlags.DeclaredOnly)
>
>            ' If the field info is nothing
>            If loFieldInfo Is Nothing Then
>                Return Nothing
>            End If
>
>            ' Get the field object
>            loObject = loFieldInfo.GetValue(loForm)
>
>            Return loObject
>        End Function
>


Charles Hankey

Though a good deal is too strange to be believed, nothing is too strange to have happened.
- Thomas Hardy

Half the harm that is done in this world is due to people who want to feel important. They don't mean to do harm-- but the harm does not interest them. Or they do not see it, or they justify it because they are absorbed in the endless struggle to think well of themselves.

-- T. S. Eliot
Democracy is two wolves and a sheep voting on what to have for lunch.
Liberty is a well-armed sheep contesting the vote.
- Ben Franklin

Pardon him, Theodotus. He is a barbarian, and thinks that the customs of his tribe and island are the laws of nature.
Previous
Next
Reply
Map
View

Click here to load this message in the networking platform