.net: Почему нельзя иметь int внутри пространства имен? - PullRequest
0 голосов
/ 08 января 2011

Почему не разрешено иметь «int» внутри пространства имен?«int» - это тип.право?Прямо как "класс".Я знаю, что между ними есть различия, но существуют оба типа данных.

namespace Ikco.Crp.UI.Common
{
    public int i;
    ....
    ....
}

Каково представление Microsoft об этом?

Ответы [ 3 ]

12 голосов
/ 08 января 2011

Существует разница между определением класса и переменной. Когда вы помещаете класс в пространство имен, вы определяете новый тип. В своем объявлении вы не определяете новый тип. Вместо этого вы используете существующий тип (int) для определения переменной. Эквивалент с использованием классов будет что-то вроде

namespace Foo{
  class Bar{}   // type definition
  Bar the_bar;  // variable definition
}

Второе определение также недопустимо, поэтому классы и int действительно ведут себя одинаково: в C # нет глобальных переменных.

4 голосов
/ 08 января 2011

В .NET нет глобальных переменных.Я думаю, что это идея.

3 голосов
/ 08 января 2011

"int" - это тип. право? Прямо как "класс". Я знаю, что между ними есть различия, но существуют оба типа данных.

int - это тип данных. class - это ключевое слово. Синтаксис, который вы используете, объявляет переменную внутри пространства имен, что недопустимо.

...