Aufruf von Template-Funktionen

16/01/2008 - 16:11 von Guido Forthofer | Report spam
Hallo,

ich habe folgendes Problem und vielleicht vor lauter IntelliSense bin ich
auch schon Betriebsblind.

Habe folgende Klasse definiert.
1
2
class MyObj : System.IEquatable<MyObj >, System.IEquatable<object>
{

...

//1
public bool Equals(MyObj other) //ok kein Problem
{
if (null == other)
{
return false;
}
return this.a = other.a
}
//2
bool System.IEquatable<object>.Equals(object other) //für Compiler auch ok
{
MyObj otherMy = other as MyObj;
if (null == otherMy)
{
return false;
}
return this.a == otherMy.a;
}

wenn ich 2 public mache, dann motzt der Compiler. Ist sowas überhaupt
möglich?

Guido
 

Lesen sie die antworten

#1 Dennis Nusser
16/01/2008 - 16:29 | Warnen spam
Hallo Guido,

System.IEquatable ist eine Schnittstelle (Interface) und perse immer public.
Deine Implementierung ist nur 'explizit Du muss die Methode 'explizit
ansprechen.

Beispiel: ((System.IEquatable<object>)myObj).Equals(NULL); // nur zum
veranschaulichen.

Dennis

"Guido Forthofer" schrieb im Newsbeitrag
news:fml6qt$f38$
Hallo,

ich habe folgendes Problem und vielleicht vor lauter IntelliSense bin ich
auch schon Betriebsblind.

Habe folgende Klasse definiert.
1 2
class MyObj : System.IEquatable<MyObj >, System.IEquatable<object>
{

...

//1
public bool Equals(MyObj other) //ok kein Problem
{
if (null == other)
{
return false;
}
return this.a = other.a
}
//2
bool System.IEquatable<object>.Equals(object other) //für Compiler auch ok
{
MyObj otherMy = other as MyObj;
if (null == otherMy)
{
return false;
}
return this.a == otherMy.a;
}

wenn ich 2 public mache, dann motzt der Compiler. Ist sowas überhaupt
möglich?

Guido




Ähnliche fragen