struct Point { int x, y; public Point(int x, int y) { this.x = x; this.y = y; } }Given the above declaration, the statements
Point p1 = new Point(); Point p2 = new Point(0, 0);both create a Point with x and y initialized to zero. end example] Paragraph 21 A struct instance constructor is not permitted to include a constructor initializer of the form base(...). Paragraph 31 The this variable of a struct instance constructor corresponds to an out parameter of the struct type, and similar to an out parameter, this must be definitely assigned (§12.3) at every location where the constructor returns. [Example: Consider the instance constructor implementation below:
struct Point { int x, y; public int X { set { x = value; } } public int Y { set { y = value; } } public Point(int x, int y) { X = x; // error, this is not yet definitely assigned Y = y; // error, this is not yet definitely assigned } }No instance member function (including the set accessors for the properties X and Y) can be called until all fields of the struct being constructed have been definitely assigned. Note, however, that if Point were a class instead of a struct, the instance constructor implementation would be permitted. end example]
| |
Jagger Software Ltd | |
Company # 4070126 | |
VAT # 762 5213 42 |