0

What the meaning of " (!0) " in ILNumerics just like this

return (!0)ILMathInternal.exp(this.m_mu);

and like this,

return 0.5 + (!0)ILMathInternal.log(this.m_sigma) + this.m_mu + (!0)ILMathInternal.log(ILMathInternal.sqrt(2.0 * ILMathInternal.pi));

Why we use this kind of expression---"(!0)" ?

Cœur
  • 37,241
  • 25
  • 195
  • 267
07012220
  • 85
  • 1
  • 7

1 Answers1

5

(!0) has no meaning, it is not valid C#


If I had to guess, which I do, I suspect the (!0) is how a decompiler has chosen to represent some IL code that has no C# representation.

Jodrell
  • 34,946
  • 5
  • 87
  • 124
  • But if the ILNumerics source is C# it somehow has to be valid C#, right? Maybe the operator `!` has been overloaded? – Good Night Nerd Pride Mar 08 '16 at 12:06
  • 1
    @Abbondanza, I suspect that this is more likely, an issue with decompilation. The `(!0)` being a representation of some IL operation which has no C# representation. – Jodrell Mar 08 '16 at 12:10
  • 2
    @Abbondanza It seems to be [Generic attribute](http://stackoverflow.com/questions/31559861/why-is-0-a-type-in-microsoft-intermediate-language-msil) – PTwr Mar 08 '16 at 12:14