c# - Find Out What Variables Are Used Inside A Function? -
i writing open source engineering calculator application in c#.
there class called calcvar, represents single calculator variable. added calculator class. on construction of calcvar variable, passed "equation" lambda function (of type func<double>, shown below) body may contain number of calcvar objects (which belong same calculator class), multiplied/added/divided/whatever , return value calcvar object.
e.g.
class ohmslaw : calculator { calcvar voltage; calcvar current; calcvar resistance; public ohmslaw() : base("ohm's law", "ohm's law calculator.") { this.voltage = new calcvar(() => current.rawval*resistance.rawval); this.current = new calcvar(() => voltage.rawval / resistance.rawval); this.resistance = new calcvar(() => voltage.rawval / current.rawval); } } i want able somehow work out other calcvar variables used inside given calcvar's equation function, can work out variables dependencies.
how go doing this? feel need emit event or similar when calcvar's rawval accessed, , somehow calcvar in question subscribe these events , log ones fire when calls equation.invoke().
you may want calcvar accept expression tree rather lambda.
e.g.
expression<func<double>> instead of
func<double> that way can inspect body of expression tree within calcvar , see dependencies are. can here introduction expression trees:
Comments
Post a Comment