Interface névütközés

Filed Under (Uncategorized) by nameless on 05-08-2009

Névütközés feloldása explicit interfészimplementációval:

using System;
 
namespace egyformaInterfacek
{
 
    #region Interfacek
    interface IAutoSebesseg
    {
        void Kiir();
    }
 
    interface IMotorSebesseg
    {
        void Kiir();
    }
 
    interface IBuszSebesseg
    {
        void Kiir();
    }
 
    interface IBicikliSebesseg
    {
        void Kiir();
    }
    #endregion
 
    #region Interfacek megvalositasa
    class JarmuvekSebessege : IAutoSebesseg, IBicikliSebesseg, IBuszSebesseg, IMotorSebesseg
    {
        //Ez autómatikusan privát, mivel ha úgy hívnánk meg akkor nem lehetne eldönteni melyiket is akarjuk kiírni
        void IAutoSebesseg.Kiir()
        {
            Console.WriteLine("320km/h");
        }
        void IBicikliSebesseg.Kiir()
        {
            Console.WriteLine("Attol fugg ki hajtja");
        }
        void IBuszSebesseg.Kiir()
        {
            Console.WriteLine("60km/h");
        }
        void IMotorSebesseg.Kiir()
        {
            Console.WriteLine("290km/h");
        }
    }
    #endregion
 
    class MainClass
    {
        public static void Main()
        {
            var sebesseg = new JarmuvekSebessege();
            ((IAutoSebesseg)sebesseg).Kiir();
            ((IBicikliSebesseg)sebesseg).Kiir();
            ((IBuszSebesseg)sebesseg).Kiir();
            ((IMotorSebesseg)sebesseg).Kiir();
 
            Console.ReadKey();
        }
    }
}

Post a comment