Ответ 1
Это потому, что int
является псевдонимом для System.Int32
, а поскольку "Int32" уже имеет префикс своего пространства имен (т.е. "полностью соответствует" ), синтаксис легален, не указывая using System;
на вверху вашего кода.
Ниже описывается этот фрагмент MSDN ниже -
Большинство приложений С# начинаются с раздела с использованием директив. В этом разделе перечислены пространства имен, которые будут использоваться приложением часто и сохраняет программиста от указания полностью квалифицированного каждый раз, когда используется метод, содержащийся внутри. Для например, включив строку:
using System;
В начале программы программист может использовать код:
Console.WriteLine("Hello, World!");
Вместо:
System.Console.WriteLine("Hello, World!");
System.Int32
(aka "int" ) будет последним. Вот пример этого в коде -
//using System;
namespace Ns
{
public class Program
{
static void Main(string[] args)
{
System.Int32 i = 2; //OK, since we explicitly specify the System namespace
int j = 2; //alias for System.Int32, so this is OK too
Int32 k = 2; //Error, because we commented out "using System"
}
}
}
Так как строка 11 не полностью квалифицирована/сглаживает полностью квалифицированный тип, using System;
нужно будет раскупить, чтобы ошибка исчезла.
Дополнительные ссылки -
-
Таблица встроенных типов (ссылка на С#) (Перечисляет все встроенные типы и их эквиваленты платформы .NET)