2009-10-05 3 views
0
public class Test 
{ 
    //Car c = null; // Is this better and is it good to set it to null. 

    public void A() 
    { 
     Car c = new Car(); 
    } 

    public void B() 
    { 
     Car c = new Car(); 
    } 

    public void C() 
    { 
     Car c = new Car(); 
    } 
} 

1) Могу ли я просто объявить объект 0 глобально в верхней и использовать его в каждом методе вместо создания нового каждый раз (Это то, что я на самом деле делать?)Инициализация объектов в .net?

2) Является ли это хорошая идея, чтобы первоначально установить объект в null?

+3

Пожалуйста, посетите код и разместить то, что компилирует. –

+0

Я быстро обновил свой код, не знаю, почему это было приостановлено. Главный вопрос заключается не в нуле, но в основном, если повторное объявление объектов добавит размер моего исполняемого файла. – Xaisoft

+0

Вы должны вернуться и не спешить. Теперь у вас есть три локальные переменные, ни одна из которых не относится к объекту-члену класса 'c'. –

ответ

3

FxCop заявляет, что вы должны избегать ненужного инициализирующего кода, поскольку он генерирует ненужный IL, который влияет на производительность. (Хотя я думаю, что поражение производительности очень минимальное). Иногда я также явно инициализирую переменные, чтобы сделать мой код более понятным.

Чтобы ответить на ваш первый вопрос: это все дело, что вы пытаетесь/желая сделать ...

+0

Спасибо, это был тот тип ответа, который я искал. Кажется излишним повторять инициализацию одного и того же объекта снова и снова. Еще раз спасибо. – Xaisoft

+0

Да, мои C и C++ дни заставляют меня инициализировать ссылки на нуль, хотя я знаю, что это не нужно. –

0

Это дублированный вопрос и был спрошен много раз на SO. Ответ: «Это вопрос стиля». Некоторые предпочитают стиль, который указывает на понимание того факта, что компилятор инициализирует значение null. Другие предпочитают стиль, который делает ненужным понимать, что компилятор будет инициализирован до нуля.

+0

Это было частью моего вопроса. – Xaisoft

+0

Повторное объявление объектов увеличивает размер моего исполняемого файла или влияет на производительность, если я делаю это много раз. – Xaisoft

0

1) Могу ли я просто объявить объект 0 глобально в верхней и использовать его в каждом методе вместо создания нового каждый раз (Это то, что я на самом деле делать?)

Помимо неверное имя для объекта (сравните 0 и O), да, вы можете. Redeclaring создает другую переменную с локальной областью, она не изменяет частный член класса.

2) Рекомендуется ли первоначально установить объект в null?

Это не нужно, поскольку это делается автоматически, когда объект вашего класса создан.

+0

Недействительные имена приходят от меня, набирают, чтобы быстро. – Xaisoft

+0

Является ли переопределение объектов добавлением к размеру исполняемого файла? – Xaisoft

+0

Конечно, это делает, redaclaration создает новую (локальную) переменную, которая, конечно же, должна быть сохранена. –

Смежные вопросы