Visual Studio не видит и не подсвечивает поле. Но в окошке с просмотрами элементов файла он есть. На всякий случай скину код
public class Constants
{
public static Dictionary<String, Double> constants = new Dictionary<string, double>(2);
constants.Add("PI", Math.PI);
}
Можете так попробывать:
public class Constants
{
public Dictionary<String, Double> constants = new Dictionary<String, Double>();
public void SetPi() => constants.Add("PI", Math.PI);
}
public class Program
{
private static void Main(String[] args)
{
Constants constant = new Constants();
constant.SetPi();
Console.WriteLine(constant.constants["PI"]);
Console.ReadKey();
}
}
Учитывая замечания @tym32167, можно сделать так:
public class Constants
{
public static Dictionary<String, Double> constants = new Dictionary<String, Double>
{
{ "PI", Math.PI }
};
}
public class Program
{
private static void Main(String[] args)
{
Console.WriteLine(Constants.constants["PI"]);
Console.ReadKey();
}
}
Начиная с C# 6.0 доступен также еще один способ инициализации:
public class Constants
{
public static Dictionary<String, Double> constants = new Dictionary<String, Double>
{
["PI"] = Math.PI
};
}
я увидел, что Visual Studio видит моё поле в функции и код, приведённый ниже работает. Но я ещё посмотрю другие варианты.
public class Constants
{
public static Dictionary<String, Double> addConstants()
{
Dictionary<string, double> constants = new Dictionary<string, double>();
constants.Add("PI", Math.PI);
constants.Add("E", Math.E);
constants.Add("GOLDEN_RATIO", 1.618);
return constants;
}
private static Dictionary<String, Double> constants = addConstants();
}
Основные этапы разработки сайта для стоматологической клиники
Продвижение своими сайтами как стратегия роста и независимости