Je pose la question au cas où je suis absent quelque chose d'évident, mais je pense que j'ai peut-être tombé sur un bug .NET du compilateur.
J'ai deux projets en un .NET solution, visual basic, C#.
Le code C#, composé de trois surcharge des méthodes statiques avec des valeurs par défaut:
public static class Class1
{
public static void TestFunc(int val1, int val2 = 0)
{
}
public static void TestFunc(int val1 = 0)
{
}
public static void TestFunc(string val1, int val2 = 0)
{
}
}
Le code Visual basic, appelant l'une des méthodes surchargées:
Option Explicit On
Option Strict On
Imports ClassLibrary1
Module Module1
Sub Main()
Dim x As Integer
Class1.TestFunc(x, 0)
End Sub
End Module
La compilation de ce code, sera un échec, en disant:
'TestFunc" est ambigu, car plusieurs types de membres avec ce nom existe dans la classe " ClassLibrary1.Class1'.
Pourquoi en serait-il de voir cette méthode comme ambiguë? Il y a seulement un Class1.TestFunc avec un (int, int) signature. Est-ce un bug ou ai-je raté quelque chose?