Как объявить константу в C # /. NET? - PullRequest
3 голосов
/ 14 ноября 2011

У меня есть следующий код:

public class iSito
{
    public const string myVar = "5262";

    public iSito()
    {

    }
}

Теперь, если из любого контекста (в моем случае, .ascx.cs) я пытаюсь использовать iSito.myVar, я не могу получить никакого значения.

Почему?

Ответы [ 3 ]

11 голосов
/ 14 ноября 2011

Ваш пример верный и должен работать - константы автоматически статичны, поэтому вы можете получить доступ к полю как iSito.myVar - убедитесь, что вы соответствуете полному пространству имен, так же, как необходимо для доступа к классу (или добавьте соответствующий оператор using).

6 голосов
/ 14 ноября 2011

Класс iSito находится в другой DLL / сборке? Если это так, вы перестраивали библиотеку DLL и перестраивали приложение, которое потребляет библиотеку DLL?

Значение const записывается как литерал в IL при компиляции клиентского приложения. Если вы измените const, вам придется пересобрать клиентское приложение.

Что произойдет, если вы измените const на readonly? (Только для целей тестирования).

0 голосов
/ 14 ноября 2011

iSito.myVar работает.Я попробовал это.

...