① В следующем коде С# возникает CS1729, но я понимаю, что CS0122 будет более подходящим.
namespace A
{
class Program
{
static void Main()
{
Test test = new Test(1);
}
}
class Test
{
Test(int i) { }
}
}
CS1729: "A.Test" не содержит конструктор, который принимает 1 аргумент
CS0122: 'A.Test.Test(int) недоступен из-за уровня защиты
② В следующем коде С# возникает CS0122, но я понимаю, что CS1729 будет более подходящим
namespace A
{
class Program
{
static void Main()
{
Test test = new Test();
}
}
class Test
{
Test(int i) { }
}
}
CS0122: 'A.Test.Test(int) недоступен из-за уровня защиты
CS1729: 'A.Test' не содержит конструктор, который принимает 0 аргументов
Вопрос: есть ли причина, по которой CS0122 и CS1729 меняются местами в ① и ② или это ошибка компилятора С#?
P.S.: Ошибки в ① и ② могут быть воспроизведены с помощью компилятора Microsoft Visual С# 2010 4.030319.1.