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

StackOverflow https://stackoverflow.com/questions/802836

Вопрос

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

Является ли это единственным языком, который это делает, и почему?Например:

Page Page = new Page();
Page.Action(); 

На других языках вы бы увидели вместо этого:

Page page = new Page();
page.action();

Есть и другие примеры этого, которые сбивают с толку, поскольку я много работал с UML, Ruby, C ++ и Java.

Мой вопрос в том, почему C # делает это таким образом, когда другие языки этого не делают?

Редактировать

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

Это было полезно?

Решение

Ну, на самом деле, нет:соглашение в C # предназначено для имен переменных (и полей) в формате camelCased и методов PascalCase:

Page page = new Page();
page.Action();

Другие советы

Нет, это довольно нестандартный код на C #.В руководстве по проектированию .Net Framework, приведенном в разделе 2.6, рекомендуется использовать оболочку camel для имен локальных переменных.

Публичные пользователи используют PascalCase, частные пользователи используют camelCase.

Я думаю, что это проясняет, какие методы поддерживают класс, а какие методы определяют класс.

public class Foo
{
    private Bar bar;
    public Bar Bar { get; set; }

    public void DoFoo()
    {
        makeFoo();
    }

    private void makeFoo()
    {
    }
}

Каждый набор соглашений C #, которые я написал или использовал, указывал бы camel case для переменных, так что:

Page page = new Page();
MyClass myClass = new MyClass();

Не уверен, где вы видели, чтобы использовался регистр Pascal, но это определенно не что-то присущее или стандартное для C #.

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

Однако, чтобы ответить на более широкую часть вашего вопроса, и свойства, и методы / функции обычно начинаются с заглавной буквы в соответствии с Рекомендации Корпорации Майкрософт.

PascalCase был стандартом в Microsoft задолго до .NET.(В Win32 API и т.д.)

Соглашение также имеет смысл использовать в рамках единой среды..NET сама по себе является всеобъемлющей средой, а Microsoft - другой компанией, поэтому на самом деле нет смысла перенимать чью-то еще.

Кроме того, я сильно сомневаюсь, что в UML есть соглашение об именовании или что даже идея о том, что UML имеет соглашение об именовании, имеет смысл.UML моделирует ваше программное обеспечение и должен соответствовать правилам этого программного обеспечения.

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

FxCop: http://msdn.microsoft.com/en-us/library/bb429476 (ПРОТИВ 80).aspx

Стилкоп: http://code.msdn.microsoft.com/sourceanalysis

Public = PascalCase, я обычно использую camelCase только для закрытых полей и аргументов параметров.

Читать это однако кодирование стандартное удобный поиск в Google - неплохое место для начала.

Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top