我在我们的应用程序中找到了一些代码,它通过List
引用来表明它已被修改:
void DoSomething(ref ListtheList) { theList.Add(new MyType()); }
我认为很明显ref-keyword在这种情况下已经过时了,因为我们还可以在没有关键字的情况下向列表中添加新元素.但是它表明我们修改了列表或至少修改了它的元素.我发现如果你有很多参数并希望看到哪些参数被修改以及哪些只是作为值来传递,那么这个特别有用.
如果这是好的问题肯定是基于意见的,对SO来说是无效的,我宁愿问是否有另一种方法来实现这一点,或者我是否应该关心它.
编辑:稍微澄清一下我的问题.如果列表被修改,则不会出现此问题,这只是一个示例.或者我也使用任何其他参考类型,而不仅仅是List
.
但是它表明我们正在更改列表.
不,不是的.它表示可以更改参考.使用ref
关键字作为"标识符",我认为可能会发生变化,因为它打开了您可能不想要的大门.
我建议调查面向方面的编程,你可以为方法参数赋值.从新的Roslyn编译器及其代码分析服务,您甚至可以检查代码是否违反了给定的主体.