.


:




:

































 

 

 

 


Delegate void StrMod(ref string str);




class MultiCastDemo {

// .

static void ReplaceSpaces(ref string s) {

Console.WriteLine(" ."); s = s.Replace(' ', '-');

}

// .

static void RemoveSpaces(ref string s) { string temp = ""; int i;

Console.WriteLine(" ."); for(i=0; i < s.Length; i++) if(s[i]!= ' ') temp += s[i];

s = temp;

}

// .

static void Reverse(ref string s) { string temp = ""; int i, j;

Console.WriteLine(" ."); for(j=0, i=s.Length-1; i >= 0; i, j++) temp += s[i];

s = temp;

}

static void Main() {

// .

StrMod strOp;

StrMod replaceSp = ReplaceSpaces;

StrMod removeSp = RemoveSpaces;

StrMod reverseStr = Reverse; string str = " .";

// . strOp = replaceSp;

strOp += reverseStr;

// . strOp(ref str);

Console.WriteLine(" : " + str);

Console.WriteLine();

// . strOp -= replaceSp; strOp += removeSp;

str = " ."; //

// . strOp(ref str);

Console.WriteLine(" : " + str);

Console.WriteLine();

}

}

.

.

.

:.--

.

.

:.

Main () . , strOp, , . RemoveSpaces () Reverse (). .

strOp = replaceSp; strOp += reverseStr

strOp replaceSp, += reverseStr. strOp , , .

replaceSp :

strOp -= replaceSp;

removeSp .

strOp += removeSp;

strOp. .

, , . . , , .

: . , , ,- , . . , , , , . , , , .

, .

// .

Using System;

class X {

Public int Val;

}

// Y, X. class Y: X { }

// X // Y , delegate X ChangeIt(Y obj);

class CoContraVariance {

// X // X , static X IncrA(X obj) {

X temp = new X(); temp.Val = obj.Val + 1; return &#9632;temp;

}

// Y // Y , static Y IncrB(Y obj) {

Y temp = new Y(); temp.Val = obj.Val + 1; return temp;

}

static void Main() {

Y Yob = new Y();

// IncrA X,

// Changelt Y. // .

Changelt change = IncrA;

X Xob = change(Yob);

Console.WriteLine("Xob: " + Xob.Val);

// IncrB Y, // Changelt X. // , change = IncrB;

Yob = (Y) change(Yob);

Console.WriteLine("Yob: " + Yob.Val);

}

}





:


: 2016-12-03; !; : 526 |


:

:

, ; , .
==> ...

1772 - | 1527 -


© 2015-2024 lektsii.org - -

: 0.008 .