File: cs0121-5.cs

package info (click to toggle)
mono 6.8.0.105%2Bdfsg-3.3%2Bdeb12u1
  • links: PTS, VCS
  • area: main
  • in suites: bookworm
  • size: 1,284,456 kB
  • sloc: cs: 11,172,132; xml: 2,850,069; ansic: 671,653; cpp: 122,091; perl: 59,366; javascript: 30,841; asm: 22,168; makefile: 20,089; sh: 15,020; python: 4,827; pascal: 925; sql: 859; sed: 16; php: 1
file content (47 lines) | stat: -rwxr-xr-x 838 bytes parent folder | download | duplicates (10)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
// CS0121: The call is ambiguous between the following methods or properties: `V2.operator -(V2, V2)' and `V3.operator -(V3, V3)'
// Line: 45

public struct V3
{
	public float x, y, z;

	public V3 (float ix, float iy, float iz) { x = ix; y = iy; z = iz; }

	static public V3 operator - (V3 lhs, V3 rhs)
	{
		return new V3 (lhs.x - rhs.x, lhs.y - rhs.y, lhs.z - rhs.z);
	}
}

public struct V2
{
	public float x, y;

	public V2 (float ix, float iy) { x = ix; y = iy; }

	public static implicit operator V2 (V3 v)
	{
		return new V2 (v.x, v.y);
	}

	public static implicit operator V3 (V2 v)
	{
		return new V3 (v.x, v.y, 0);
	}

	static public V2 operator - (V2 lhs, V2 rhs)
	{
		return new V2 (lhs.x - rhs.x, lhs.y - rhs.y);
	}
}

internal class Test
{
	static void Main ()
	{
		V2 a = new V2 ();
		V3 b = new V3 ();

		V2 s = a - b;
	}
}