Using Operators

Contents
[ ]

The following table contains predefined and user-defined operators that LINQ Reporting Engine enables you to use in template expressions.

Primary x.y x?.y f(x) a[x] a?[x] new
Unary - ! ~ (T)x
Binary * / % + - << >> < > <= >= == != & ^ | && || ??
Ternary ?:

The engine follows operator precedence, associativity, and overload resolution rules declared at C# Language Specification 5.0 while evaluating template expressions. But be aware of the following limitations in the behavior comparing with the specification:

  • Implicit user-defined conversions are supported only when specified explicitly.
  • The indexing of multi-dimensional arrays is not supported.
  • Whereas the object initializer syntax is supported (including objects of anonymous types), the collection initializer syntax is not.

Also, the engine enables you to use lifted operators in template expressions.