Person, слегка изменив его определение: class Person { //конструкторы public Person(){name =""; id=0; salary=0.0;} public Person(string name){this.name = name;} public Person (string name, int id, double salary) {this.name = name; this.id=id; this.salary = salary;} public Person (Person pers) {this.name = pers.name; this.id = pers.id; this.salary = pers.salary;} //методы public void ToPerson(string mes) { this.message = mes; Console.WriteLine("{0}, {1}",name, message); } //свойства private string name; private int id; private double salary; private string message; //доступ к свойствам public string Name {get {return(name);} set {name = value;}} public double Salary {get {return(salary);} set {salary = value;}} public int Id {get {return(id);} set {id = value;}} }//class Person Класс Person устроен обычным способом: у него несколько перегруженных конструкторов, закрытые поля и процедуры-свойства для доступа к ним. Особо обратить внимание прошу на метод класса ToPerson, сигнатура которого совпадает с сигнатурой класса, определенной введенным ранее делегатом MesToPers. Посмотрите, как клиент класса может связать этот метод с экземпляром делегата, определенного самим клиентом: Person man1 = new Person("Владимир"); |