Исправить исключение NullReferenceException можно с помощью Null-условных операторов в c # 6 и написать меньше кода для обработки нулевых проверок.
Он используется для проверки нуля до выполнения доступа к члену (?. ) или index (? [).
Пример
var name = p?.Spouse?.FirstName;
эквивалентен:
if (p != null)
{
if (p.Spouse != null)
{
name = p.Spouse.FirstName;
}
}
В результате имя будет нулевым когда p равно null или когда p.Spouse имеет значение null.
В противном случае имени переменной будет присвоено значение p.Spouse.FirstName.
Для получения дополнительной информации: Операторы с нулевым условием
Вы не можете создать прямоугольник внутри другого прямоугольника. Но вы можете сделать 2 прямоугольника, чтобы выглядеть так.
Вы используете & lt; rect & gt; тег для прямоугольников. Изучив описание прямоугольника в спецификациях , вы можете видеть, что модель содержимого не разрешает & lt; rect & gt; чтобы содержать другой & lt; rect & gt; (или форма).
Пример того, что вы можете сделать:
<rect x="0" y="0" width="200" height="100"/>
<rect x="25" y="25" width="150" height="50"/>
Вы также можете добавить & lt; g & gt; вокруг этих двух прямоугольников, чтобы сгруппировать их, например:
<g>
<rect x="0" y="0" width="200" height="100"/>
<rect x="25" y="25" width="150" height="50"/>
</g>
Дополнительные пояснения здесь: http://www.w3.org/TR/SVG/struct.html#Groups
У вас также есть альтернатива использованию пути для рисования 2 прямоугольников только с одним тегом. Все зависит от ваших потребностей.