Итак, извиняйтесь заранее за неудовлетворительную терминологию в этом вопросе - я пытаюсь научить себя C# и борюсь с несколькими понятиями.Мне кажется, мне нужен статический класс с конструктором?
В псевдо-коде, у меня есть что-то вроде этого:
static void Main()
{
// This will create lots of "Item"(s), and do stuff with them
}
public class Item
{
// a bunch of properties
public Item()
{
}
}
Далее, мне нужно UtilityFunction1
, что будет делать какую-то работу - он будет вызываться много раз в Main() и передается Item
с до сделайте с ними некоторые расчеты. Для выполнения этой функции необходимо настроить Dictionary
. Хотя он будет называться много раз, словарь следует устанавливать только один раз.
Мне также нужен UtilityFunction2
. Подобно UtilityFunction1
, эта функция также нуждается в словаре для выполнения этой работы, которую нужно установить только один раз. Эта функция будет вызываться много раз на UtilityFunction1
.
Итак, с одной стороны, кажется, что UtilityFunction1
и UtilityFunction2
должны быть общедоступными классами, так как они должны иметь конструктор, который заполняет словарь (который включает переменные, петли и вычисления).
С другой стороны, мне нужно только один из UtilityFunction1
и UtilityFunction2
, так что кажется, что они должны быть статическими методами. Но если это так, как и когда они выполняют работу по созданию словарей, в которых они нуждаются?
Как вы это достигаете?
синтаксиса для статического конструктора просто 'статический Item() {...}' (см [MSDN] (https://msdn.microsoft.com/en -us/library/k9x6w0hc.aspx)) – Carsten
Статические классы/синглтоны часто нахмурились ... Но на самом деле ошибочно иметь одно для однопользовательского консольного приложения. Теперь, что именно ваша проблема создает статический класс с конструктором? –
Если вам нужен статический класс с конструктором - почему вы не просто это сделали? – TomTom