Autor Beitrag
Diablo_Vmax1200
Hält's aus hier
Beiträge: 2



BeitragVerfasst: Di 25.07.06 19:00 
Hallo!

Ich habe eine generische Klasse von einer anderen erben lassen.
Nun möchte ich von der Basisklasse gerne eine Methode die generische Parameter besitzt benutzen.

Der Compiler lässt es aber nicht zu, dass ich einen double in diesen generischen Tpy konvertiere. Gibt es keine Möglichkeit ihm zu sagen dass das geht?

ausblenden C#-Quelltext
1:
2:
3:
4:
5:
6:
7:
8:
9:
10:
11:
12:
13:
14:
15:
public class Operation_DeflectionFromPrevious<V, P> : Operation_InRange<V>
        where V :IComparable<V>,IConvertible
        where P :IComparable<P>,IConvertible
    {

        internal bool deflectionFromPrevious(V actualValue, V previousValue, P deflection)
        {
            double preVal = Convert.ToDouble(previousValue);
            double range = round(previousValue, (preVal / 100d * Convert.ToDouble(deflection)));
            unsafe
            {
                return base.isInRange(actualValue, (V)(preVal - range), (V)(preVal + range));
            }
        }
}


oder ist mein herangehen an das problem so schon vom Ansatz her nicht richtig?

Viele Grüsse Michael
Diablo_Vmax1200 Threadstarter
Hält's aus hier
Beiträge: 2



BeitragVerfasst: Mi 26.07.06 09:09 
Also ich habe es nun mal so versucht:
ausblenden C#-Quelltext
1:
2:
3:
4:
5:
6:
7:
8:
9:
        internal bool deflectionFromPrevious(V actualValue, V previousValue, P deflection)
        {
            double preVal = Convert.ToDouble(previousValue);
            double range = round(previousValue, (preVal / 100d * Convert.ToDouble(deflection)));
            object a = (preVal - range);
            object b = (preVal + range);
            
            return base.IsInRange(actualValue, (V)a, (V)b);
        }


Der Compiler meckert nicht mehr, aber zum ausführen bin ich noch nicht gekommen. Schön ist das aber irgendwie nicht! Das muss doch auch anders gehen, oder?

Kann ich dem nicht sagen z.B.
where V: System.valuetype oder so...

Gruss Michael