Почему C# Чувствительный к регистру? [закрытый]

$. getscript

https://api.jquery.com/jquery.getscript/

Это сокращенная Ajax-функция, которая эквивалентно:

blockquote>
$.ajax({
  url: url,
  dataType: "script",
  success: success
});

, поэтому $.getscript выполняет асинхронный вызов, поэтому ваш код эквивалентен:

  • $. getscript - начать загрузку сценария
  • console.log (wow) - пока не могу найти его, так как скрипт еще не загружен
  • ... завершить загрузку скрипта

Вы можете использовать обратный вызов выполнить код после загрузки скрипта:

$.getScript("myModule.js", function() {
    console.log(wow);
    console.log(wow());
});
10
задан Andrew Harry 12 February 2010 в 01:43
поделиться

13 ответов

C# является случаем sensistive, потому что он берет после языков стиля C, которые все чувствительны к регистру. Это из памяти, вот ссылка MSDN, которая не работает на меня прямо сейчас, я не могу проверить.

Я также хотел бы указать, что это - очень допустимый вариант использования:

public class Child
{
   private Person parent;
   public Person Parent
   {
      get { return parent;}
   }
}

Да можно обойти это использование префиксы на членских переменных, но некоторым людям не нравится делать это.

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

Рассмотрите имена переменной в следующем псевдокоде:

class Foo extends Object { ... }
...
foo = new Foo();

Наличие чувствительности к регистру позволяет конвенции который вариант использования разделить имена классов и экземпляры; такие конвенции нисколько не являются редкими в мире разработки.

6
ответ дан 3 December 2019 в 13:20
поделиться

Они, вероятно, думали, что "мы не хотим людей использование SoMeVaRiAbLe в одном месте и sOmEvArIaBlE в другом.

7
ответ дан 3 December 2019 в 13:20
поделиться

Я думаю, что наличие чувствительных к регистру идентификаторов может сделать код более читаемым, с помощью соглашений о присвоении имен, ну, в общем, и даже без соглашений о присвоении имен, непротиворечивость, осуществленная чувствительностью к регистру, гарантирует Вам, что тот же объект всегда пишется тот же путь.

4
ответ дан 3 December 2019 в 13:20
поделиться

C# наследовал чувствительность к регистру от C и Java, которому это пытается подражать, чтобы помочь разработчикам переместиться в C#

Возможно, были некоторые серьезные основания для того, чтобы сделать C чувствительный к регистру, когда это было создано три десятилетия назад, но, кажется, нет никаких записей на почему. Jeff Atwood записал, что хорошая защита статьи для той чувствительности к регистру больше не могла бы иметь смысла.

4
ответ дан 3 December 2019 в 13:20
поделиться

Вероятно, скопированный с C, C++, Java, и т.д. или может быть сохранен тем же нарочно так, чтобы его подобное тому, что имеют другие языки.

2
ответ дан 3 December 2019 в 13:20
поделиться

Я думаю то, что случай может передать информацию, очень серьезное основание. Например, условно, имена классов, открытые методы и свойства запускаются с прописной буквы условно. И с другой стороны, поля и локальные переменные запускаются со строчной буквы.

После использования языка в течение многих лет я приехал для реального наслаждения этим, код намного легче прочитать, когда можно считать информацию просто из преобразования регистра слов.

И вот почему люди иногда делают это, и это может иметь смысл:

Foo foo = new Foo();

Я делаю это все время, это очень полезно. Если Вы думаете об этом в более полезной такой ситуации:

Image image = Image.LoadFrom(path);

Просто имеет смысл иногда называть экземпляр тем же самым как имя класса, и единственным способом сказать им независимо является преобразование регистра. В C++ чувствительность к регистру становится еще более полезной, но это - другая история. Я могу уточнить, если Вам интересно.

6
ответ дан 3 December 2019 в 13:20
поделиться

Это был просто вопрос вкуса в команде разработчика C# языка. Я готов держать пари, что это было для общности с другими языками семейства C. Это действительно однако приводит к некоторым плохим практикам программирования, таким как частное поле и его associalted свойство, отличающееся только в случае первой буквы.

Править:

Почему это могло бы быть cosidered плохо.

class SomeClass 
{
    private int someField;

    public int SomeField
    {
        get { return SomeField; } 
        // now we have recursion where its not wanted and its 
        // difficult for the eye to pick out and results in a
        // StackOverflowException.
    }
}

Добавление префикса частных полей с _ или m могло бы помочь определить. Не огромная важная персона и лично я подоконник делает точно, что я только что сказал, плохо (поэтому предъявите иск мне!).

2
ответ дан 3 December 2019 в 13:20
поделиться

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

1
ответ дан 3 December 2019 в 13:20
поделиться

Я предполагаю, что требуется видеть код как:

SomeField=28;
someField++;
somefield++;
SOMEFIELD++;

скомпилированный, как будто SomeField в любом изменении преобразования регистра является той же переменной.

Лично, я думаю, что это - плохая идея. Это поощряет лень и/или небрежность. Почему беспокойство, правильно заключающее вещь в корпус, когда это не имеет значения так или иначе? Ну, в то время как мы в нем, возможно, компилятор должен позволить орфографические ошибки, как SoemField++?

0
ответ дан 3 December 2019 в 13:20
поделиться

Вы смотрите на это очень ограниченным способом - с Вашей точки зрения. Разработчики языка должны принять во внимание целый другой набор соображений: культурные причины, совместимость с другими языками, общие методы кодирования и т.д.

Все современные языки используют чувствительность к регистру: которые не делают?

Как кто-то, кто использовал ОСНОВНОЙ в течение многих лет, я стал очень усталым от разработчиков, использующих различные случаи для той же переменной. Этот вид вещи очень утомителен для взгляда на и поощряет неаккуратное программирование. Если Вы не можете быть побеспокоены для разбираний в случае - что еще Вы не можете быть побеспокоены, чтобы сделать?

1
ответ дан 3 December 2019 в 13:20
поделиться

Именование. Названия тверды произойти, и Вы не хотите должными быть создавать новое имя при разговоре о чем-то подобном или иметь для использования некоторой нотации для отделения их.

Такие сценарии являются свойствами для полей или аргументов в конструкторе, что Вы собираетесь присвоить полям.

-1
ответ дан 3 December 2019 в 13:20
поделиться

Из конвенций капитализации руководства разработчика инфраструктуры.NET, чувствительности к регистру:

Инструкции по капитализации существуют только для создания идентификаторов легче считать и распознать. Преобразование регистра не может использоваться в качестве средства предотвращения коллизий имени между элементами библиотеки.

Не предполагайте, что все языки программирования чувствительны к регистру. Они не. Имена не могут отличаться одним только случаем.

1
ответ дан 3 December 2019 в 13:20
поделиться
Другие вопросы по тегам:

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