Несколько вопросов по соглашению об именах C # - PullRequest
7 голосов
/ 05 августа 2009

1) Какова политика объявления переменной? Если всегда использовать ключевое слово private, или это нормально, пропустить его?

string MyVar1;

против

private string MyVar1;

Единственная причина, которую я вижу, заключается в том, что Microsoft однажды может изменить модификаторы доступа по умолчанию на public вместо private.

Где говорит, что частное является необязательным? Любые ссылки на MSDN ?

2) Политика именования констант?

Я всегда использовал заглавные буквы при написании константы, но друг сказал мне, что это против политики именования Microsoft, не так ли?

const string MYVAR1;

против

const string myVar1;

3) Паскаль или верблюд?

Лично я думаю, что Верблюд просто выглядит безобразно.

Ответы [ 15 ]

0 голосов
/ 04 декабря 2009

В C # видимость по умолчанию максимально возможная. Без модификатора:

  • не внутренние классы являются внутренними
  • внутренние классы являются частными
  • члены класса являются личными

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

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

В общем, я следую Руководству по проектированию Microsoft для разработки библиотек классов .

0 голосов
/ 05 августа 2009

@ Дан Диплом # Не используйте префикс для переменных-членов (, m, s_ и т. Д.). Если вы хотите различать # между локальными переменными и переменными-членами, вы должны использовать «this» в C # и «Me» в VB.NET.

Это весьма спорно. Префикс помогает intellisense: вы ставите префикс char и получаете список только локальных полей частного экземпляра. С этим. Вы получите полный список, который состоит из методов, полей, свойств, событий и т. д.

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

private int _count; 
private int total; 
private decimal price; 

public MyClass(int count, int total, decimal price) 
{ 
    _count = count;     // correct 
    this.total = total; // correct 
    price = price;      // wrong! you forgot this. qualifier 
} 
0 голосов
/ 05 августа 2009

Вас также могут заинтересовать Собственные рекомендации Microsoft по внутреннему кодированию для .NET Framework, о чем сообщил Бред Абрамс в своем блоге :

Следуйте всем рекомендациям по разработке .NET Framework для внутренних и внешних участников. Основные из них включают в себя:

  • Не использовать венгерскую запись
  • Не используйте префикс для переменных-членов (, m , s_ и т. Д.). Если вы хотите различить
  • между локальными переменными и переменными-членами вы должны использовать «this.» В C # и «Me.» В VB.NET.
  • Использовать camelCasing для переменных-членов
  • Использовать camelCasing для параметров
  • Использовать camelCasing для локальных переменных
  • Использовать PascalCasing для имен функций, свойств, событий и классов
  • Использовать префиксные имена интерфейсов с «I»
  • Не ставьте перед перечислениями, классами или делегатами какие-либо буквы
0 голосов
/ 05 августа 2009

Вот бесплатная электронная книга с рекомендациями по кодированию на C # и VB .net, это очень хорошо

Ссылка для скачивания книги

Лично мне нравится явно указывать, когда что-то является приватным, для удобства чтения, на самом деле я настолько привык к этому, что когда я его не вижу, я запутываюсь. Что касается констант, я использую PascalCasing.

0 голосов
/ 05 августа 2009

1) Я склонен использовать приват, просто чтобы быть явным, но на самом деле не нужно догадываться

2) Это правда, Microsoft рекомендует не использовать заглавные буквы для констант.

Руководящие указания Microsoft по именам для членов типа можно найти здесь

...