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:请参阅我编辑的答案。你的问题以前不清楚,现在更清楚了,所以希望我的答案会更有用。如果没有,请发布您的实际代码,而不仅仅是错误消息。