DevTrain .NET Developers Home. Das Community Portal für ASP.NET, Visual Basic, C#
 
  Login Status: Hallo   Anmelden  Suche:  
Navigationslinks überspringen
Startseite
Artikel
Blogs
Foren
ClubClub erweitern

 
Ihre Optionen
Save
Mail
Print
Rate
 
Advertising
  Advanced Developers Track vom 24.-25. Februar 2010 im ehem. IMAX München

 
Navigationslinks überspringen
Autor:Shinja Strasser

Namesausblendung in C#

Die Methodennamen in C# werden nicht auf der Grundlage
der Methodensignatur verborgen, sondern auf den Namen der Methode !!!

***********************************************************

using System;

public class ErsteKlasse
 {
   public int Funktion(int val)
   {
     Console.WriteLine("Klasse1.Funktion - {0}", val);
   }
 }

public class ZweiteKlasse:ErsteKlasse
 {
   public int Funktion(string val)
    {
      Console.WriteLine("Klasse2.Funktion - {0}", val);
    }
 }

class TestKlasse
{
 public static void Main()
  {
    ZweiteKlasse KL2 = new ZweiteKlass();
    KL2.Funktion("Das funktioniert");
    KL2.Funktion(7);   // Hier tritt ein Fehler auf !!!         
                                  // Was muss ich jetzt machen ??? 
    ((ErsteKlasse) KL2).Funktion(7); // jetzt gehts !!!
  }
}

*********************************************************************

Was ist passiert ?
Die beiden Funktionen >>Funktion(int val), Funtion(string val)<< befinden sich in unterschiedlichen
Klassen.
Die in der abgeleiteten Klasse >>ZweiteKlasse<< definierte Funktion >>Funktion()<< wird in der
BasisKlasse >>ErsteKlasse<< an allen Stellen ausgeblendet.
Eine (wenn nötige) Lösung wäre die Überladung.


Diskutieren Sie in den Foren

SharePoint konferenz vom 24.-25. Februar 2010 im ehem. IMAX München