Csharp/CSharp Tutorial/Class/Class as Parameter

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

Passing ref-types by ref

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();
  }
}
Mel is 23 years old
TOM is 999 years old

Use interface as a parameter

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 );
   }
}