Вы получаете доступ к так называемой нулевой ссылке .
После создания объекта,
A newObj = new A();
свойства newObj остаются неинициализированными, свойство varA
является нулевой ссылкой до тех пор, пока вы не инициализируете его следующим образом
newObj.varA = new B[1]; //create an array that can hold one B instance and assign it to varA
Тем не менее, если вы получите доступ к первому элементу в массиве, например varA[0]
, вы также обнаружите, что это нулевая ссылка! Вы должны инициализировать это тоже.
newObj.varA[0] = new B(); //create a B instance and put it to the array
Тогда вы можете получить доступ к varB
, используя
newObj.varA[0].varB = "Hello World!";