① Dans le code C# suivant, CS1729 se produit, mais je comprends que CS0122 serait plus approprié.
namespace A
{
class Program
{
static void Main()
{
Test test = new Test(1);
}
}
class Test
{
Test(int i) { }
}
}
CS1729: A. Test " ne contient pas un constructeur qui prend 1 arguments
CS0122: A. Test.Test(int) est inaccessible en raison de son niveau de protection'
② Dans le code C# suivant, CS0122 se produit, mais je comprends que CS1729 serait plus approprié
namespace A
{
class Program
{
static void Main()
{
Test test = new Test();
}
}
class Test
{
Test(int i) { }
}
}
CS0122: A. Test.Test(int) est inaccessible en raison de son niveau de protection'
CS1729: A. Test " ne contient pas un constructeur qui prend 0 arguments
Question: Est-il une raison pourquoi CS0122 et CS1729 sont inversés ① et ② ou est-ce compilateur C# bug ?
P. S.: les Erreurs dans ① et ② peut être reproduit avec Microsoft Visual C# 2010 Compilateur version 4.030319.1.