Csharp/CSharp Tutorial/Class/Class as Parameter

Материал из .Net Framework эксперт
Перейти к: навигация, поиск

Passing ref-types by ref

<source lang="csharp">using System; class Person {

 public string fullName;
 public int age;
 public Person(string n, int a)
 {
   fullName = n;
   age = a;
 }
 public void PrintInfo()
 {
   Console.WriteLine("{0} is {1} years old", fullName, age);
 }

} class MainClass {

 public static void SendAPersonByReference(ref Person p)
 {
   p.age = 555;
   p = new Person("TOM", 999);
 }
 public static void Main() 
 {
   Person mel = new Person("Mel", 23);
   mel.PrintInfo();
   SendAPersonByReference(ref mel);
   mel.PrintInfo();
 }

}</source>

Mel is 23 years old
TOM is 999 years old

Use interface as a parameter

<source lang="csharp">interface Animal { } class Dog : Animal { } class Cat : Animal { } class MainClass {

  static void ListenToMe( Animal listener )
  {
  }
  
  static void Main()
  {
     Dog dog = new Dog();
     Cat cat = new Cat();
     ListenToMe( dog );
     ListenToMe( cat );
  }

}</source>