Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/wpf/12.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Wpf 可观测集合能否作为ref参数传递?_Wpf_Mvvm_Observablecollection - Fatal编程技术网

Wpf 可观测集合能否作为ref参数传递?

Wpf 可观测集合能否作为ref参数传递?,wpf,mvvm,observablecollection,Wpf,Mvvm,Observablecollection,是否可以将可观察集合作为引用参数传递 我收到一个错误,无法将其作为引用参数传递 这正是我收到的错误消息: “索引器的属性不能作为out或ref参数传递。”是的,您可以通过引用传递ObservableCollection。但是,对于任何类,都不能通过引用传递此。(你可以为一个结构,但请不要。) 如果通过引用传递一个正态变量时遇到问题,请发布一些代码 编辑:我刚刚看到你的编辑。。。编译器的错误信息相当清楚。不能通过引用传递属性或索引器。所以你不能这样做: Foo(ref x.SomeProperty

是否可以将可观察集合作为引用参数传递

我收到一个错误,无法将其作为引用参数传递

这正是我收到的错误消息:


“索引器的属性不能作为out或ref参数传递。”

是的,您可以通过引用传递
ObservableCollection
。但是,对于任何类,都不能通过引用传递
。(你可以为一个结构,但请不要。)

如果通过引用传递一个正态变量时遇到问题,请发布一些代码

编辑:我刚刚看到你的编辑。。。编译器的错误信息相当清楚。不能通过引用传递属性或索引器。所以你不能这样做:

Foo(ref x.SomeProperty);
但你可以做到:

var tmp = x.SomeProperty;
Foo(ref tmp);
x.SomeProperty = tmp;

嘿,伙计,如果你需要帮助的话,你得多做点腿活。我们需要简单的代码来显示错误、您得到的错误消息、是运行时错误还是编译时错误等等。您可以编辑您的文章以包含这些内容吗?在.NET中,除了结构/值类型之外,您不需要对任何其他类型执行此操作。所有不是基元的类型(引用类型)都会自动通过ref传递,大多数情况下,如果要通过ref传递值类型或将值类型传递出去,您的设计可能需要进行工作。@Will:不完全是这样。在C#中,没有类型自动通过ref传递。想想Dictionary.TryGetValue(“blah”,out x)即使字符串是引用类型,
Dictionary.TryGetValue(“blah”,x)不起作用。@Martin我不太清楚。我发现很多。。。让我们给新程序员打电话,他们认为传递引用类型的唯一方法是将其作为引用发送,这样就不会通过值传递引用类型。反模式中,您希望从方法调用返回多个值,因此必须将所有变量作为ref(或out,取决于方法)等进行传递。我的ObservableCollection属于class类型。@Anish:请参阅我编辑的答案。你的问题以前不清楚,现在更清楚了,所以希望我的答案会更有用。如果没有,请发布您的实际代码,而不仅仅是错误消息。