C#: Ограничьте объем глобального поля методом / свойство ИЛИ сохраните метод / значение локальной переменной свойства между вызовами

Вы можете разрешить зависимость, используя псевдоним. См. https://webpack.js.org/configuration/resolve/?_sm_au_=iVV0dsf3NTdNVrRc#resolvealias

. В веб-пакете добавьте следующую конфигурацию:

resolve: {
    alias: {
      jQuery: path.resolve('./bower_components/jquery/dist/jquery.js'),
      ...
    }
  }

В приложение, куда вам нужно jQuery импортировать, используя строку ниже (при условии, что вы используете модуль CommonJS):

var $ = require('jQuery');

Надеюсь, это поможет:)

6
задан 28 April 2009 в 16:40
поделиться

6 ответов

Единственный способ сделать его закрытым только для части класса - это сделать его отдельным объектом, который управляет этим свойством, внутренним в классе.

Однако я бы порекомендовал переосмыслить это немного. Идея состоит в том, чтобы держать члена закрытым для самого класса - если вы беспокоитесь о том, что ваш класс видит свои собственные данные, пришло время реорганизовать классы меньшего размера, каждый со своей функцией.

Это имеет «запах» «класса становится слишком большим.

6
ответ дан 17 December 2019 в 00:14
поделиться

В C #, нет. Это то, что статические переменные находятся в VB.NET (и я считаю, C, хотя я не эксперт). Однако я совершенно уверен, что статические переменные в VB.NET просто скомпилированы в IL с автоматически сгенерированными именами в качестве полей экземпляров.

Просто придерживайтесь полей экземпляров, которые имеют соответствующие имена (например, lastDrawTime) для вашего примера).

1
ответ дан 17 December 2019 в 00:14
поделиться

Нет, наиболее ограниченная область действия - это "private", которая разрешает доступ из того же типа.

0
ответ дан 17 December 2019 в 00:14
поделиться

Нет, нет пути; но ваш вопрос поднимает некоторые интересные вопросы. Если у вас есть опасения по поводу вашей переменной-члена для отслеживания, это видно по всему классу, что поднимает флажки, что, возможно, область действия класса стала слишком большой, и что класс необходимо реорганизовать в несколько меньших классов.

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

0
ответ дан 17 December 2019 в 00:14
поделиться

Боюсь, то, что вы просите, невозможно.

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

Я также думаю, что вы могли бы refactor ваш код, потому что, если остальной части вашего класса не нужно знать об этой переменной, возможно, эта часть может быть где-то еще.

0
ответ дан 17 December 2019 в 00:14
поделиться

Нет, прости. C # не допускает статики на уровне функций, как C. Я бы порекомендовал дать ему "странное" имя, например Draw_Data_lastTime или что-то в этом роде. Это по крайней мере передает информацию о том, где это должно использоваться.

0
ответ дан 17 December 2019 в 00:14
поделиться
Другие вопросы по тегам:

Похожие вопросы: