Префикс для делегатов имеют какое-либо особое значение?

Хорошо.

Решением было добавить "esModuleInterop": true к моему tsconfig.json.

Кроме того, "allowSyntheticDefaultImports": true позволил мне написать import React from "react"; вместо import * as React from "react";.

Спасибо всем.

10
задан Cristi Diaconescu 7 April 2009 в 10:04
поделиться

2 ответа

Еще некоторые детали из MSDN:

Префикс включает использование ключевых слов как идентификаторы, которое полезно при взаимодействии через интерфейс с другими языками программирования. Символ не является на самом деле частью идентификатора, таким образом, идентификатор мог бы рассматриваться на других языках как нормальный идентификатор без префикса. Идентификатор с префикс называют дословным идентификатором. Использование префикс для идентификаторов, которые не являются ключевыми словами, разрешается, но сильно препятствуется как стиль.

из спецификации языка C#: 2.4.2 Идентификаторы.

Добавление префикса поэтому позволяет, например, произойти из класса, названного "делегатом", который мог бы быть определен в библиотеке, записанной на другом языке, чем C#.

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

Существует также другой интересный факт об именовании переменной, упомянутом там:

Идентификаторы, содержащие два последовательных символа подчеркивания (U+005F), резервируются для использования реализацией. Например, реализация могла бы обеспечить расширенные ключевые слова, которые начинаются с двух символов нижнего подчеркивания.

15
ответ дан 3 December 2019 в 15:53
поделиться

"@delegate" должен дифференцировать имя переменной от ключевого слова "делегата".

12
ответ дан 3 December 2019 в 15:53
поделиться
Другие вопросы по тегам:

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