【问题标题】:How does passing by reference really work in C#?通过引用传递在 C# 中如何真正起作用?
【发布时间】:2012-03-09 22:45:34
【问题描述】:

我想知道 C# 中的引用传递是如何工作的。如果我通过引用函数来传递 WPF DataGrid 控件,并慢慢让函数将项目添加到其 DataGrid.Items 集合中,UI 中的 DataGrid 是否会随着每个新的 DataGrid.Items.Add() 调用而更新?或者它只会在函数返回时更新?我想实现前一种情况,所以如果通过引用传递不能解决问题,我会喜欢一些关于如何实现这一点的建议。提前致谢。

【问题讨论】:

    标签: c# wpf function pass-by-reference


    【解决方案1】:

    无论如何,通过引用传递与您的情况无关。通过引用传递(即ref)允许您分配给调用范围内的变量。你不是想那样做。您只想访问DataGrid 引用并访问其Items 字段。那根本不需要ref

    【讨论】:

      【解决方案2】:

      正如 Ethicallogics 所说的扩展,我将继承并覆盖 add 以便它每次调用 UpdateLayout,那么您不必担心它。

      一般来说,最好将所有需要的 .net 类(特别是与 UI 相关的任何东西)子类化,这样,如果您遇到自定义需求,以后就不必再这样做了。始终使用您自己的子类。

      【讨论】:

        【解决方案3】:

        如果你想要前一种情况,那么在你使用 Add() 方法后,在下一条语句中调用 datagrid 的函数 UpdateLayout()。希望这会有所帮助。

        【讨论】:

          猜你喜欢
          • 2011-05-31
          • 1970-01-01
          • 2017-12-04
          • 2019-10-04
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 2011-01-14
          相关资源
          最近更新 更多