Каковы наиболее распространенные соглашения об именах в C# для классов, пространств имен и методов? Общепринято ли иметь методы стиля getter/setter, как в Java?Каковы наиболее распространенные соглашения об именах в C#?
ответ
Существует несколько распространенных шаблонов. Я часто вижу и использую в своих проектах:
namespace Company.Concept.SubConcept
{
public class MyClass
{
private MyType someData;
public MyType SomeData
{
get { return someData; }
set { someData = value; }
}
public void MyMethod()
{
}
}
}
Лично я не поклонник m_ конвенций. Цель этой нотации - рассказать вам об объеме переменной. Тем не менее, я нахожу, что он лучше читает код, чем помогает понять, где объявлена переменная. Если вы сомневаетесь в том, где определена переменная, просто наведите курсор мыши на нее в Visual Studio. Я чувствую, что этот стандарт идет по тому же пути, что и венгерская нотация (помните все префиксы переменных, чтобы напомнить вам о типе переменной: n, l, sz, dw, lpsz и т. Д.) –
Нет, нет общего в названиях стилей геттера/сеттера в C#. Свойства должны использоваться почти во всех местах, где вы используете геттер/сеттер в Java.
IMHO, стандарт defacto для соглашений об именах приведен в Руководстве по разработке рамок. Он применяется несколькими инструментами (FxCop) и является доминирующим стилем для многих библиотек, включая BCL.
Обратите внимание, что C# 3.0 + обеспечивает поддержку автоматического -выполнение свойств. И не игнорируйте частный набор. – Brian
Хотя правильное это не дает полной картины. Я знаю, что вы это знаете, но я бы хотел, чтобы ссылка на ответ указывала, что свойства, по сути, являются синтаксическим сахаром для аксессуаров и предпочтительны для явных аксессуаров. При использовании свойства, которое вы действительно ** **, определяете методы доступа. Начиная с C# 3.0, язык предоставляет автоматические свойства, которые будут создавать поля поддержки и соответствующие методы для их получения/установки с помощью синтаксиса автоматического свойства. Исходя из фона Java, мне потребовалось некоторое время, чтобы поймать свойства, пока я не понял, что они на самом деле были. – tvanfosson
Заканчивать страницу Ланса
http://weblogs.asp.net/lhunt/pages/CSharp-Coding-Standards-document.aspx
и
Guidelines for Names (от Design Guidelines for Developing Class Libraries, в котором вы также найдете разделы о properties и choosing between properties and methods. В этой последней статье вы найдете следующее:
ли использовать свойство, а не метод , если значение свойства хранятся в памяти процесса и имущество будет просто предоставить доступ к значению.
Спасибо за редактирование @ShuggyCoUk; пропустил это. –
Я думаю, что большинство проектов с использованием IDesign CSharp Coding Standard
MSDN обеспечивает Design Guidelines, что заклинание это в деталях.
- 1. Каковы соглашения об именах в C#?
- 2. Соглашения об именах в C#
- 3. Каковы соответствующие соглашения об именах библиотек?
- 4. Каковы соглашения об именах для вложенных маршрутов?
- 5. Каковы некоторые соглашения об именах backbone.js?
- 6. соглашения об именах для параметров в C#
- 7. Соглашения об именах Objective C
- 8. Переменные соглашения об именах в C++
- 9. Каковы предпочтительные соглашения об именах du jour для C++?
- 10. Соглашения об именах
- 11. Соглашения об именах iOS .plist
- 12. Соглашения об именах AJAX
- 13. Соглашения об именах файлов
- 14. Соглашения об именах Ruby?
- 15. Соглашения об именах .NET
- 16. SQL соглашения об именах
- 17. Соглашения об именах Python
- 18. Соглашения об именах PHPUnit
- 19. Соглашения об именах Bem
- 20. Mule flow - Соглашения об именах
- 21. Соглашения об именах и обходах C#
- 22. Соглашения об именах объектов
- 23. Соглашения об именах PostgreSQL
- 24. Соглашения об именах Java
- 25. Каковы наиболее распространенные методы SOA?
- 26. Каковы наиболее распространенные команды EMACS?
- 27. Соглашения об именах в MVC5
- 28. соглашения об именах в Hibernate
- 29. Каковы соглашения об именах для фреймворков Mac и iOS?
- 30. соглашения об именах и именах в приложениях c
Все, кроме венгерского. –
[http://stackoverflow.com/questions/127427/common-naming-conventions](http://stackoverflow.com/questions/127427/common-naming-conventions) – Raghav