2017-05-05 98 views
-1

我一直在为此工作了很多,但仍然无法让我的代码正常运行。Visual Basic:具有多个“级别”的CallByName

我有一个叫做Contact的类,它有一个只读属性AddressAddress类具有像StreetCity这样的属性。现在我想将联系人指定的街道是这样的:

CallByName(contact, "Address.Street", CallType.Set, new_street) 

但我得到一个错误说“Address.Street”不是Contact成员。

我需要通过它的名字来设置属性,以便

contact.Adress.Street = new_street 

是不是一种选择。

我怎样才能使上面的第一个例子工作?

+0

尝试CallByName(contact.Address“街道“,CallType.Let,new_street) –

+0

”我需要通过名称设置属性“..uh,当然,除了代码中没有任何理由。谨慎澄清? –

回答

1

CallByName使一个调用。你想做两个。

首先吸气剂呼叫:

Dim contactAddress As Address 
Set contactAddress = CallByName(contact, "Address", CallType.Get) 

然后,..well那么就没有理由CallByName来分配Street属性值:

contactAddress.Street = new_street