17.9.1 Unary operators

王朝other·作者佚名  2006-05-21
窄屏简体版  字體: |||超大  

The following rules apply to unary operator declarations, where T denotes

the class or struct type that contains

the operator declaration:

? A unary +, -, !, or ~ operator must take a single parameter of type T and

can return any type.

? A unary ++ or -- operator must take a single parameter of type T and must

return type T.

? A unary true or false operator must take a single parameter of type T and

must return type bool.

The signature of a unary operator consists of the operator token (+, -, !,

~, ++, --, true, or false) and the type

of the single formal parameter. The return type is not part of a unary

operator?s signature, nor is the name of the

formal parameter.

C# LANGUAGE SPECIFICATION

256

The true and false unary operators require pair-wise declaration. A

compile-time error occurs if a class

declares one of these operators without also declaring the other. The true

and false operators are described

further in §14.16.

[Example: The following example shows an implementation and subsequent

usage of operator++ for an integer

vector class:

public class IntVector

{

public int Length { ? } // read-only property

public int this[int index] { ? } // read-write indexer

public IntVector(int vectorLength) { ? }

public static IntVector operator++(IntVector iv) {

IntVector temp = new IntVector(iv.Length);

for (int i = 0; i < iv.Length; ++i)

temp[i] = iv[i] + 1;

return temp;

}

}

class Test

{

static void Main() {

IntVector iv1 = new IntVector(4); // vector of 4x0

IntVector iv2;

iv2 = iv1++; // iv2 contains 4x0, iv1 contains 4x1

iv2 = ++iv1; // iv2 contains 4x2, iv1 contains 4x2

}

}

Note how the operator method returns the value produced by adding 1 to the

operand, just like the postfix

increment and decrement operators(§14.5.9), and the prefix increment and

decrement operators (§14.6.5). Unlike

in C++, this method need not, and, in fact, must not, modify the value of

its operand directly. end example]

 
 
 
免责声明:本文为网络用户发布,其观点仅代表作者个人观点,与本站无关,本站仅提供信息存储服务。文中陈述内容未经本站证实,其真实性、完整性、及时性本站不作任何保证或承诺,请读者仅作参考,并请自行核实相关内容。
 
 
© 2005- 王朝網路 版權所有  導航