Создает ли компилятор тот же IL, если я создаю класс с public int I;
(или любым другим полем) по сравнению с созданием класса, который наследуется от базового класса с public int I;
?
В любом случае результирующий класс ведет себя одинаково, но компилятор ведет себя одинаково?
Т.е., компилятор просто копирует код из базовых классов в производные классы, или он фактически создает два разных объекта класса, когда вы наследуете?
class A
{
public int I;
}
class B : A
{
}
Есть ли разница в производительности между следующими двумя вызовами DoSomething ()?
var a = new A();
var b = new B();
DoSomething(a.I);
DoSomething(b.I); // Is this line slower than the above line due to inheritance?
Старайтесь игнорировать любые оптимизации, которые компилятор может сделать для этого особого случая. Мой вопрос о том, имеет ли наследование в C # в целом снижение производительности. В большинстве случаев мне все равно, но иногда я хочу оптимизировать фрагмент высокочастотного кода.