2017-05-05 106 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