Этот ответ существует в исторических целях.
Первоначально:
, поскольку String
класс и поэтому не может быть константа.
Расширенное Обсуждение:
Много полезного диалогового окна было выработано в проверке этого ответа, и вместо того, чтобы удалить его, это содержание воспроизводится непосредственно:
В.NET, (в отличие от этого, в Java) строка и Строка являются точно тем же. И да, у Вас могут быть константы строкового литерала в.NET †“DrJokepu 3 февраля '09 в 16:57
, Вы говорящий, что Класс не может иметь констант? †“StingyJack 3 февраля '09 в 16:58
Да, объекты должны использовать только для чтения. Только структуры могут сделать константы. Я думаю, когда Вы используете
string
вместоString
, компилятор изменяет константу в только для чтения для Вас. Все, чтобы сделать с оставанием счастливым C программистов. †“Garry Shutler 3 февраля '09 в 16:59tvanfosson просто объяснил это подробный. "X не может быть константа, потому что содержание Y является классом", было просто немного слишком контекстно-свободно ;) †“Leonidas 3 февраля '09 в 17:01
строка. Пустой статическое свойство, которое возвращает экземпляр Строкового класса, а именно, пустая строка, не сам строковый класс. †“tvanfosson 3 февраля '09 в 17:01
Пустой является экземпляром только для чтения (это не свойство) Строкового класса. †“senfo 3 февраля '09 в 17:02
Главное причинение вреда. Я все еще думаю, что я прав, но теперь я менее уверен. Сегодня вечером требуется исследование! †“Garry Shutler 3 февраля '09 в 17:07
пустая строка является экземпляром строкового класса. Пустой статическое поле (не свойство, я признаю ошибку) на Строковом классе. В основном различие между указателем и вещью это указывает на. Если бы это не было только для чтения, то мы могли бы измениться, которые инстанцируют поле Empty, относится к. †“tvanfosson 3 февраля '09 в 17:07
Garry, Вы не должны проводить исследование.Подумайте об этом. Строка является классом. Пустой экземпляр Строки. †“senfo 3 февраля '09 в 17:12
существует что-то, что я не вполне получаю: как же может статический конструктор Строкового класса создавать экземпляр Строкового класса? Не то, что своего рода "курица или яйцо" сценарий? †“DrJokepu 3 февраля '09 в 17:12 5
Этот ответ был бы корректен почти для любого другого класса, но Системы. Строка..NET делает большое специальное преобразование регистра производительности для строк, и один из них - то, что Вы, CAN имеет строковые константы, просто попробуйте его. В этом случае у Jeff Yates есть корректный ответ. †“Joel Mueller 3 февраля '09 в 19:25
, Как описано в В§7.18, константное выражение является выражением, которое может быть полностью оценено во время компиляции. Так как единственный способ создать ненулевое значение ссылочного типа кроме строки состоит в том, чтобы применить новый оператор, и так как новый оператор не разрешен в константном выражении, единственное возможное значение для констант ссылочных типов кроме строки является нулевым. Предыдущие два комментария были взяты непосредственно из спецификации языка C# и повторяют то, что упомянул Joel Mueller. †“senfo 4 февраля '09 в 15:05 5
используйте вместо этого следующие команды:
ALTER TABLE table_name DISABLE TRIGGER tr_name
ALTER TABLE table_name ENABLE TRIGGER tr_name
Предыдущая строка должна заканчиваться ;
, потому что в SQL DISABLE
не является ключевым словом. Например:
BEGIN
;
DISABLE TRIGGER ...