Существует два класса следующим образом.Что касается концепции ООП
Class A { int i; }
Class B : A { int j; }
Как инициализировать i = 1 и j = 2 одной командой или оптимизированно?
Существует два класса следующим образом.Что касается концепции ООП
Class A { int i; }
Class B : A { int j; }
Как инициализировать i = 1 и j = 2 одной командой или оптимизированно?
Если эти поля были публичными (или внутренний):
class A { public int i; }
class B : A { public int j; }
вы могли бы использовать инициализатор так:
var b = new B() { i = 1, j = 2 };
Ты мужчина! –
Если это в контексте интервью, ожидаемый однострочный ответ, вероятно:
var b = new B { i = 1, j = 2 };
Обратите внимание, что это не лучше оптимизирован, чем просто создание нового экземпляра, то влияет на значение некоторой общественности поля/свойства.
Частные поля, хотя это, вероятно, больше того, что ожидал интервьюер. –
@ LasseV.Karlsen Fair допущение, но поскольку код OP фактически нарушен ('Class' вместо' class'), это сложно сказать. – ken2k
Хорошая точка. Скорее всего, он перефразирован из памяти, поскольку все мы знаем, что поля были фактически опубликованы в самом интервью. –
Что вы пытаетесь сделать? если вы хотите, чтобы каждый экземпляр класса A имел значение переменной i, то вы могли бы просто сделать это при определении i. Подобно 'class A {int i = 1; } ' – Christos
Вы посмотрели на конструкторы? –
Спасибо. Я ответил с конструктором, но интервьюер ожидал чего-то еще! –