2014-11-05 4 views
-2

Существует два класса следующим образом.Что касается концепции ООП

Class A { int i; } 
Class B : A { int j; } 

Как инициализировать i = 1 и j = 2 одной командой или оптимизированно?

+2

Что вы пытаетесь сделать? если вы хотите, чтобы каждый экземпляр класса A имел значение переменной i, то вы могли бы просто сделать это при определении i. Подобно 'class A {int i = 1; } ' – Christos

+1

Вы посмотрели на конструкторы? –

+0

Спасибо. Я ответил с конструктором, но интервьюер ожидал чего-то еще! –

ответ

0

Если эти поля были публичными (или внутренний):

class A { public int i; } 
class B : A { public int j; } 

вы могли бы использовать инициализатор так:

var b = new B() { i = 1, j = 2 }; 
+0

Ты мужчина! –

0

Если это в контексте интервью, ожидаемый однострочный ответ, вероятно:

var b = new B { i = 1, j = 2 }; 

Обратите внимание, что это не лучше оптимизирован, чем просто создание нового экземпляра, то влияет на значение некоторой общественности поля/свойства.

+1

Частные поля, хотя это, вероятно, больше того, что ожидал интервьюер. –

+1

@ LasseV.Karlsen Fair допущение, но поскольку код OP фактически нарушен ('Class' вместо' class'), это сложно сказать. – ken2k

+0

Хорошая точка. Скорее всего, он перефразирован из памяти, поскольку все мы знаем, что поля были фактически опубликованы в самом интервью. –

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