Где я должен объявить статические переменные?

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

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

И если Вы не верите мне (и ничей проголосовавший за мой ответ, рыдание рыдания!), возможно, Вы будете верить Francesco Balena и Dan Appleman (в книге , Перемещающейся в VB.NET ), кто соглашается со мной.

7
задан 2 November 2009 в 18:39
поделиться

3 ответа

Если вы хотите определить глобальную переменную, не имеет значения, куда вы ее поместите (внутри или вне @implementation). В этом контексте static означает, что переменная видна только из этого модуля компиляции (файла .m).

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

10
ответ дан 6 December 2019 в 23:07
поделиться

Глобальные объекты могут перемещаться практически куда угодно; просто поместите его в любое место, которое имеет стилистический смысл. Лично я предпочитаю видеть глобальные переменные в верхней части исходных файлов.

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

0
ответ дан 6 December 2019 в 23:07
поделиться

Если он находится после блока @implementation , то вы не можете использовать его в блоке @implementation (если только он не объявлен в другом месте) используя extern ). Вот как я это делаю:

//Constants.h
extern BOOL MyConstantBool;
extern NSString* MyConstantString;


//Constants.m
#import "Constants.h"
BOOL MyConstantBool = YES;
NSString* MyConstantString = @"Hello, world!";


//SomeOtherFile.m
#import "Constants.h" 
//you can now use anything declared in Constants.h 
1
ответ дан 6 December 2019 в 23:07
поделиться
Другие вопросы по тегам:

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