X hits on this document

1074 views

0 shares

0 downloads

0 comments

260 / 396

Chapter ‎18   Unsafe code

operator-modifiers: operator-modifier operator-modifiers   operator-modifier

operator-modifier: public static extern

operator-declarator: unary-operator-declarator binary-operator-declarator conversion-operator-declarator

unary-operator-declarator: type   operator   overloadable-unary-operator   (   type   identifier   )

overloadable-unary-operator:  one of +   -   !   ~   ++   --   true   false

binary-operator-declarator: type   operator   overloadable-binary-operator   (   type   identifier   ,   type   identifier   )

overloadable-binary-operator:  one of +   -   *   /   %   &   |   ^   <<   >>   ==   !=   >   <   >=   <=

conversion-operator-declarator: implicit   operator   type   (   type   identifier   ) explicit   operator   type   (   type   identifier   )

operator-body: block ;

There are three categories of overloadable operators: Unary operators (§‎10.9.1), binary operators (§‎10.9.2), and conversion operators (§‎10.9.3).

When an operator declaration includes an extern modifier, the operator is said to be an external operator. Because an external operator provides no actual implementation, its operator-body consists of a semi-colon. For all other operators, the operator-body consists of a block, which specifies the statements to execute when the operator is invoked. The block of an operator must conform to the rules for value-returning methods described in §‎10.5.8.

The following rules apply to all operator declarations:

An operator declaration must include both a public and a static modifier.

The parameter(s) of an operator must be value parameters. It is a compile-time error for an operator declaration to specify ref or out parameters.

The signature of an operator (§‎10.9.1, §‎10.9.2, §‎10.9.3) must differ from the signatures of all other operators declared in the same class.

All types referenced in an operator declaration must be at least as accessible as the operator itself (§‎3.5.4).

It is an error for the same modifier to appear multiple times in an operator declaration.

Each operator category imposes additional restrictions, as described in the following sections.

Copyright Microsoft Corporation 1999-2003. All Rights Reserved.247

Document info
Document views1074
Page views1074
Page last viewedSun Dec 11 00:40:29 UTC 2016
Pages396
Paragraphs9401
Words133190

Comments