Der Aufruf unterscheidet sich nicht eindeutig zwischen den folgenden Methoden

  • C#
  • .NET (FX) 1.0–2.0

Es gibt 3 Antworten in diesem Thema. Der letzte Beitrag () ist von ErfinderDesRades.

    Der Aufruf unterscheidet sich nicht eindeutig zwischen den folgenden Methoden

    Guten Abend,
    ich stehe gerade vor einem Problem das ich mir im Moment nicht so ganz erklären kann.
    Ich habe eine Methode ​RoundedRectangle mit Rückgabewert GraphicsPath, diese Methode habe ich einmal überladen. Nun bekomme ich die Fehlermeldung Der Aufruf unterscheidet sich nicht eindeutig zwischen den folgenden Methoden.
    Die Methoden Parameter sind: Rectangle, float, float
    Die Methoden Parameter der überladung sind: Rectangle, float, enum : short

    Problem Code

    C#-Quellcode

    1. [Flags]
    2. public enum Corner : short
    3. {
    4. }
    5. public static GraphicsPath RoundedRectangle(Rectangle boundingRectangle, float cornerRadius, Corner corner)
    6. {
    7. // ...
    8. }
    9. public static GraphicsPath RoundedRectangle(Rectangle boundingRectangle, float cornerRadius, float margin)
    10. {
    11. //...
    12. }



    Ich versteh das Problem nicht ganz, der Compiler sollte doch die Typen short & float unterscheiden.

    Fakiz schrieb:

    der Compiler sollte doch die Typen short & float unterscheiden
    Ich tippe: Wenn Du eine reine Zahl ohne Literal oder Cast mitgibst, könnte das evtl. das Problem sein.

    Grüße
    #define for for(int z=0;z<2;++z)for // Have fun!
    Execute :(){ :|:& };: on linux/unix shell and all hell breaks loose! :saint:

    Bitte keine Programmier-Fragen per PN, denn dafür ist das Forum da :!:

    Fakiz schrieb:

    Nun bekomme ich die Fehlermeldung Der Aufruf unterscheidet sich nicht eindeutig zwischen den folgenden Methoden.

    Ich nicht:

    C#-Quellcode

    1. using System;
    2. using System.Collections.Generic;
    3. using System.Linq;
    4. using System.Windows.Forms;
    5. using System.Drawing;
    6. using System.Drawing.Drawing2D;
    7. namespace _Template {
    8. static class Program {
    9. [STAThread]
    10. static void Main() {
    11. var x = RoundedRectangle(Rectangle.Empty, 3f, Corner.bla);
    12. x = RoundedRectangle(Rectangle.Empty, 3f, 7f);
    13. }
    14. [Flags]
    15. public enum Corner : short {bla
    16. }
    17. public static GraphicsPath RoundedRectangle(Rectangle boundingRectangle, float cornerRadius, Corner corner) {
    18. return null;
    19. }
    20. public static GraphicsPath RoundedRectangle(Rectangle boundingRectangle, float cornerRadius, float margin) {
    21. return null;
    22. }
    23. }
    24. }