很容易找到使用属性的所有代码,但是如何找到设置的代码?
(当我在“set”上执行“查找所有引用”时,它只是在属性本身上执行“查找所有引用”,包括只读取它的代码。)
答案 0 :(得分:47)
您可以使用Resharper。
或者,将setter设置为private(或完全注释掉setter)并重新编译。在尝试设置属性时,您将收到错误。
答案 1 :(得分:19)
尝试评论属性的set
部分并构建它会在所有使用它的地方出错。
答案 2 :(得分:12)
对于它的价值,这将在VS2019中实现。
特别是“查找所有引用”窗口中有一个新的“查找”列,可以对其中的“写”引用进行过滤:
添加了此功能的特定Github PR计划包含在Visual Studio 2019预览版2(16.0.P2)https://github.com/dotnet/roslyn/issues/22545
中VS2019的完整版本为roadmapped for Q1 of 2019。
答案 3 :(得分:1)
您可以在propertyName =
上运行文本搜索 - 您可以尝试使用正则表达式搜索来在名称和=
之间允许0到n个空格。
答案 4 :(得分:0)
AFAIK,这不能使用Visual Studio的标准功能完成 - 它不会对属性做任何特殊操作,以检查它们在搜索时是在左侧还是右侧使用,并且,当然,没有选择告诉它这样做。
要提供一个选项而不必运行额外的正则表达式或安装其他软件,您可以浏览结果窗口让您的眼睛扫描左侧发生 - 可能不是最有效率但我不确定我看到比其他建议更有优势。
最后,@ Kamyar关于让属性不再可访问的建议似乎值得一看,但这取决于你的项目编译需要多长时间,它可能需要更长时间才能找到所有 - 我不确定为什么你需要Resharper这样做呢。
答案 5 :(得分:0)
这是一个相当强大的解决方案,对于使用没有第三方工具的Visual Studio的非属性也是如此。请务必在查找中选择“匹配大小写”和“使用正则表达式”选项。
<强> 1。除了后期/预修复增量和班次分配以外的所有内容:
(^|[^\w.])MyVariable\s*([\+\-\*/%&|\^]|)=[\w\s]
<强> 2。对于后期/预修复增量和班次分配:
((^|[^\w.])MyVariable\s*(\+\+|--)|(\+\+|--)\s*MyVariable[^\w.]|(^|[^\w.])MyVariable\s*(<<|>>)=)
第3。对于Out / Ref参数(属性的N / A):
(^|[^\w.])(out|ref)\s+MyVariable[^\w.]
CAVEATS: