Модераторы: Partizan, gambit
  

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> Как правильно объявлять переменные (String, array) 
:(
    Опции темы
useronforum
Дата 23.4.2009, 04:10 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 3
Регистрация: 23.4.2009

Репутация: нет
Всего: нет



Как правильно объявлять переменные в Visual C++ .NET?

В справке в разных примерах по-разному пишется.
(Вариант №2 чаще встречается для строк,
а вариант №3 чаще встречается для массивов)

1. String ^fileName1 = "abcde";
2. String^ fileName1 = "abcde";
3. String^fileName1 = "abcde";

1. array<Byte> ^a1 = gcnew array<Byte>(32);
2. array<Byte>^ a1 = gcnew array<Byte>(32);
3. array<Byte>^a1 = gcnew array<Byte>(32);

(Все эти варианты работают, но как правильнее писать)

Я думаю, что правильнее вариант №1, так как
при объявлении нескольких переменных:
String^ a1, a2; - ошибка
String ^a1, a2; - ошибка
String ^a1, ^a2; - нет ошибок


Это сообщение отредактировал(а) useronforum - 23.4.2009, 04:32
PM MAIL   Вверх
Grok
Дата 23.4.2009, 13:20 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 123
Регистрация: 17.12.2007

Репутация: нет
Всего: нет



если работают, тогда все три варианта правельные )
но если разобрать семантически то получим:
1 String ^fileName1 = String (^fileName1);
2 String^ fileName1 = (String^) fileName1;
для меня лично более адекватной является вторая запись, где переменной является  fileName1, которая имет тип данных указатель на строку 
PM MAIL ICQ   Вверх
PashaPash
Дата 23.4.2009, 13:38 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
***


Профиль
Группа: Завсегдатай
Сообщений: 1233
Регистрация: 3.1.2008

Репутация: 9
Всего: 49



Жестокие у вас загоны smile
Правильнее вариант с String ^fileName1, т.к. ^ относится именно к конкретной переменной. Но даже в MSDN в статье по ^ (Handle to Object on Managed Heap) смешаны все 3 стиля smile


--------------------
PM MAIL WWW   Вверх
Partizan
Дата 23.4.2009, 14:26 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Let's do some .NET
****


Профиль
Группа: Модератор
Сообщений: 2828
Регистрация: 19.12.2005
Где: Санкт-Петербург

Репутация: 8
Всего: 67



PashaPash, потому что примеры там пишут студенты smile


--------------------
СУВ,
       Partizan.
PM MAIL WWW ICQ Skype GTalk Jabber   Вверх
useronforum
Дата 23.4.2009, 14:45 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 3
Регистрация: 23.4.2009

Репутация: нет
Всего: нет



Нашёл
"C++ Programming Style Guidelines" (http://geosoft.no/development/cppstyle.html)

Цитата
51. C++ pointers and references should have their reference symbol next to the type rather than to the name.  
float* x; // NOT: float *x; 
int& y;   // NOT: int &y;
 
The pointer-ness or reference-ness of a variable is a property of the type rather than the name. C-programmers often use the alternative approach, while in C++ it has become more common to follow this recommendation.  

PM MAIL   Вверх
-Mikle-
Дата 23.4.2009, 14:48 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Невидимка Vingrad'а
***


Профиль
Группа: Экс. модератор
Сообщений: 1672
Регистрация: 22.6.2003
Где: Казахстан, Астана

Репутация: 4
Всего: 59



Цитата(PashaPash @  23.4.2009,  16:38 Найти цитируемый пост)
Правильнее вариант с String ^fileName1, т.к. ^ относится именно к конкретной переменной

Однако приведение к типу будет выглядеть так: String^ var1 = (String^)var2;


--------------------
Если тебе плюют в спину, значит ты впереди...
PM   Вверх
Partizan
Дата 23.4.2009, 15:05 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Let's do some .NET
****


Профиль
Группа: Модератор
Сообщений: 2828
Регистрация: 19.12.2005
Где: Санкт-Петербург

Репутация: 8
Всего: 67



useronforum, это для native C++.... и то эти гайдлайны могут оверрайдиться на уровне корпоративных кодинг гайдлайнов/стандартов. либо на уровне команды...


--------------------
СУВ,
       Partizan.
PM MAIL WWW ICQ Skype GTalk Jabber   Вверх
PashaPash
Дата 23.4.2009, 16:03 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
***


Профиль
Группа: Завсегдатай
Сообщений: 1233
Регистрация: 3.1.2008

Репутация: 9
Всего: 49



Partizan, это и есть корпоративный станадарт какого-то "геософта".

Добавлено через 5 минут и 16 секунд
When declaring a pointer variable or argument, you may place the asterisk adjacent to either the type or to the variable name.
http://google-styleguide.googlecode.com/sv...nce_Expressions


--------------------
PM MAIL WWW   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
Прежде чем создать тему, посмотрите сюда:
Partizan
PashaPash

Используйте теги [code=csharp][/code] для подсветки кода. Используйтe чекбокс "транслит" если у Вас нет русских шрифтов.
Что делать если Вам помогли, но отблагодарить помощника плюсом в репутацию Вы не можете(не хватает сообщений)? Пишите сюда, или отправляйте репорт. Поставим :)
Так же не забывайте отмечать свой вопрос решенным, если он таковым является :)


Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, mr.DUDA, Partizan, PashaPash.

 
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | .NET для новичков | Следующая тема »


 




[ Время генерации скрипта: 0.0686 ]   [ Использовано запросов: 22 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.