Re[6]: Константы. Класс или структура?
От: Sinclair Россия https://github.com/evilguest/
Дата: 04.07.24 13:06
Оценка:
Здравствуйте, _FRED_, Вы писали:

_FR>Это, с определённой точки зрения, совсем не то же самое, что и методы и поля на уровне пространств имён (неймспейсов по-нашему).

_FR>Модуль, концептуально, это больше про физическое разделение кода, а пространства имён — про логическое. Я б не стал одно через другое.
Не очень понятно, чего хочется достичь.
При потреблении отличий между "функциями/константами в неймспейсе" и "фукнциями/константами в классе" не очень много:
namespace Foo // воображаемый синтаксис
{
   const int X = 42;
   int Bar(int a) => a ^ 37;
}
public static class Foo // существующий синтаксис
{
   static const int X = 42;
   static int Bar(int a) => a ^ 37;
}

...

  var x = Foo.Bar(Foo.X); // выглядит одинаково

...

using Foo; // в воображаемом синтаксисе
var x = Bar(X); 


using static Foo; // в существующем синтаксисе
var x = Bar(X);


Т.е. синтаксически расположение констант и методов внутри "неймспейса Foo" уже реализовано. См. напр. using static System.Math.
Единственное, ради чего может захотеться "свободных" функций и констант — размещение напрямую в неймспейсе global::
Ну, вот его-то и позволяют достичь модули.
Уйдемте отсюда, Румата! У вас слишком богатые погреба.
Re[7]: Константы. Класс или структура?
От: _FRED_ Черногория
Дата: 04.07.24 13:52
Оценка: +1
Здравствуйте, Sinclair, Вы писали:

_FR>>Это, с определённой точки зрения, совсем не то же самое, что и методы и поля на уровне пространств имён (неймспейсов по-нашему).

_FR>>Модуль, концептуально, это больше про физическое разделение кода, а пространства имён — про логическое. Я б не стал одно через другое.
S>Не очень понятно, чего хочется достичь.

Напомню с чего всё началось: Константы. Класс или структура?

Маразм Шарпа в том, что в нем нельзя объявить константу вне типа и тип используется в качестве пространства имен. По уму можно было допустить объявление:

namespace X
{
  public const int Zero = 0;
}

Но тогда CLR пришлось бы расширять первоклассной сущностью — константой. На этом решили сэкономить допустив только типы.
По той же причине сделали маразм с отсутствием глобальных функций (не методов).

Я как раз в отсутствии возможности объвления "констант и методов" на уровне неймспейса "маразма" не вижу так как не вижу какой-либо необходимости в этом.

S>При потреблении отличий между "функциями/константами в неймспейсе" и "фукнциями/константами в классе" не очень много


В этом-то и дело.

S>Единственное, ради чего может захотеться "свободных" функций и констант — размещение напрямую в неймспейсе global::

S>Ну, вот его-то и позволяют достичь модули.

Но это совсем не то, на что я отвечал.
Help will always be given at Hogwarts to those who ask for it.
Отредактировано 04.07.2024 14:10 _FRED_ (Исправил опечатку) . Предыдущая версия .
Re[4]: Константы. Класс или структура?
От: akasoft Россия  
Дата: 04.07.24 15:37
Оценка:
Здравствуйте, VladD2, Вы писали:

VD>В том, что тип используется не по назначению. И нельзя обойтись без него, хотя никакой необходимости в нем нет.

А какой смысл в константе в отрыве от типа?
... << RSDN@Home 1.3.110 alpha 5 rev. 62>> SQL DE 2016
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.