File: virtual-method.cs

package info (click to toggle)
mono 4.6.2.7%2Bdfsg-1
  • links: PTS, VCS
  • area: main
  • in suites: stretch
  • size: 778,148 kB
  • ctags: 914,052
  • sloc: cs: 5,779,509; xml: 2,773,713; ansic: 432,645; sh: 14,749; makefile: 12,361; perl: 2,488; python: 1,434; cpp: 849; asm: 531; sql: 95; sed: 16; php: 1
file content (41 lines) | stat: -rw-r--r-- 781 bytes parent folder | download | duplicates (13)
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
using System;

namespace Obj {
	interface Bah {
		int H ();
	}
	class A : Bah {
		public int F () {return 1;}
		public virtual int G () {return 2;}
		public int H () {return 10;}
	}
	class B : A {
		public new int F () {return 3;}
		public override int G () {return 4;}
		public new int H () {return 11;}
	}
	class Test {
		static public int Main () {
			int result = 0;
			B b = new B ();
			A a = b;
			if (a.F () != 1)
				result |= 1 << 0;
			if (b.F () != 3)
				result |= 1 << 1;
			if (b.G () != 4)
				result |= 1 << 2;
			if (a.G () != 4)
				result |= 1 << 3;
			if (a.H () != 10)
				result |= 1 << 4;
			if (b.H () != 11)
				result |= 1 << 5;
			if (((A)b).H () != 10)
				result |= 1 << 6;
			if (((B)a).H () != 11)
				result |= 1 << 7;
			return result;
		}
	};
};