File: cs1.cs

package info (click to toggle)
ohcount 3.0.0-2
  • links: PTS, VCS
  • area: main
  • in suites: squeeze
  • size: 4,712 kB
  • ctags: 3,205
  • sloc: ansic: 6,524; ruby: 2,560; perl: 2,041; erlang: 350; lisp: 272; sh: 244; pascal: 196; vhdl: 150; haskell: 149; asm: 128; cs: 124; awk: 98; java: 92; php: 73; tcl: 58; xml: 57; fortran: 54; makefile: 32; python: 31; ada: 30; objc: 30; jsp: 28; sql: 18; cobol: 13; ml: 9; cpp: 3
file content (55 lines) | stat: -rw-r--r-- 2,151 bytes parent folder | download | duplicates (8)
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
48
49
50
51
52
53
54
55
csharp	comment	// The Delegate declaration which defines the signature of methods which can be invoked
csharp	code	public delegate void ScoreChangeEventHandler (int newScore, ref bool cancel);
csharp	blank	
csharp	comment	// Class which makes the event
csharp	code	public class Game {
csharp	comment	    // Note the use of the event keyword
csharp	code	    public event ScoreChangeEventHandler ScoreChange;
csharp	blank	
csharp	code	    int score;
csharp	blank	
csharp	comment		// Score Property
csharp	code	    public int Score {
csharp	code	        get {
csharp	code	            return score;
csharp	code		    }
csharp	code	        set {
csharp	code	            if (score != value) {
csharp	code	                bool cancel = false;
csharp	code	                ScoreChange (value, ref cancel);
csharp	code	                if (! cancel)
csharp	code	                    score = value;
csharp	code	            }
csharp	code	        }
csharp	code	    }
csharp	code	}
csharp	blank	
csharp	comment	// Class which handles the event
csharp	code	public class Referee
csharp	code	{
csharp	code	    public Referee (Game game) {
csharp	comment	        // Monitor when a score changes in the game
csharp	code	        game.ScoreChange += new ScoreChangeEventHandler (game_ScoreChange);
csharp	code	    }
csharp	blank	
csharp	comment	    // Notice how this method signature matches the ScoreChangeEventHandler's signature
csharp	code	    private void game_ScoreChange (int newScore, ref bool cancel) {
csharp	code	        if (newScore < 100)
csharp	code	            System.Console.WriteLine ("Good Score");
csharp	code	        else {
csharp	code	            cancel = true;
csharp	code	            System.Console.WriteLine ("No Score can be that high!");
csharp	code	        }
csharp	code	    }
csharp	code	}
csharp	blank	
csharp	comment	// Class to test it all
csharp	code	public class GameTest
csharp	code	{
csharp	code	    public static void Main () {
csharp	code	        Game game = new Game ();
csharp	code	        Referee referee = new Referee (game);
csharp	code	        game.Score = 70;
csharp	code	        game.Score = 110;
csharp	code	    }
csharp	code	}