Вы могли бы сделать
Dim b as New Bar()
Dim newFoo As New Foo()
newFoo.i = 14
b.MyFoo = newFoo
Чтобы обойти проблему.
То же самое в C # с кодом
class Program
{
public void Main()
{
Bar bar = new Bar();
bar.foo = new Foo();
bar.foo.i = 14;
//You get, Cannot modify the return value of ...bar.foo
// because it is not a variable
}
}
struct Foo
{
public int i { get; set; }
}
class Bar
{
public Foo foo { get; set; }
}
Как мне кажется, это более прямой способ сказать то же самое, что и
Expression is a value and therefore cannot be the target of an assignment