0
A
回答
3
這不能工作,代碼只會更新對象。它沒有達到這個目標,並且還更新了TextBox :: Text屬性。這不僅僅是因爲這是一個字符串,正如在重複鏈接中所暗示的那樣,它也不適用於簡單的值類型屬性。
這是因爲屬性不是值,您不能創建對它們的引用。當你使用它們時,它們看起來像語法中的值。但是當你聲明它們時肯定不是,注意你如何編寫get和set方法。所以要更新文本框中顯示的文本,你必須調用屬性的set方法。這不僅僅是一個簡單的變量賦值,它是一個方法調用。直觀上可能很明顯,注意如何分配Text屬性有很多副作用。你可以在屏幕上看到它。
要間接調用方法,您需要另一輛車,您需要代表。非常類似於C中的函數指針。任何關於.NET編程的介紹性書籍都會解釋它們。您可以聲明自己的委託類型,但更喜歡內置.NET框架的通用類型。添加對System.Core的引用,以便可以使用通用動作<>委託類型。你需要先寫來分配Text屬性的方法:
private:
void updateTextBox(String^ text) {
textBox1->Text = text;
}
這將有這樣的樣品的方法進行更新:
void Test(Action<String^>^ updater) {
updater("foo");
}
,並注意有這種方法可以更新任何文本框中,您通過的委託對象決定哪個。您的代碼創建委託變量是這樣的:
Test(gcnew Action<String^>(this, &Form1::updateTextBox));
+0
好的,我明白了。非常感謝你 ! – Jozekban 2013-04-21 18:55:45
相關問題
- 1. Java按值或通過引用傳遞?
- 2. 通過引用或按值傳遞
- 3. c#對象通過引用傳遞或按值傳遞
- 4. 如何傳遞按鈕名稱或值通過使用MVC
- 5. 如何通過引導中的切換按鈕傳遞值
- 6. 通過單選按鈕的onclick事件傳遞控件
- 7. C++ 11:通過引用或值傳遞(lambda或其他)函數對象?
- 8. 如何將Material-UI FlatButton CSS傳遞到其他按鈕組件
- 9. SceneKit:如何在SCNView上添加按鈕(或其他控件)
- 10. 通過Excel的VBA傳遞其他的langauge數據轉換成文本文件
- 11. 通過引用其他函數傳遞緩衝區
- 12. RCPP通過引用傳遞與按值
- 13. VB6按值傳遞並通過引用
- 14. 如何通過使用django將html按鈕的id傳遞給python文件?
- 15. JavaScript通過引用或值傳遞?
- 16. 通過引用或值傳遞對象
- 17. 通過值或引用傳遞http.ResponseWriter?
- 18. Delphi:通過引用或傳遞值?
- 19. LocalConnection通過值或引用傳遞?
- 20. Drupal7:通過按下其他ajax按鈕阻止圖片上傳
- 21. 如何通過JavaScript和其他文本
- 22. 如何通過將其他模型屬性傳遞給控制器來使用ajax上傳文件?
- 23. 如何通過引用傳遞Generic :: List?
- 24. 如何通過引用傳遞數組?
- 25. 如何通過引用傳遞結構?
- 26. hadoop如何通過引用傳遞?
- 27. python如何通過引用傳遞?
- 28. 如何通過引用傳遞結構?
- 29. 如何通過按其他按鈕來更改一個按鈕的圖像?
- 30. 傳遞一個按鈕的onClickListener的編輯文本引用
[?爲什麼字符串是不可變的,什麼是它的意義(http://www.codeproject.com/Articles/406046/Why-strings-are -immutable-what-the-implica) – I4V 2013-04-21 14:17:23