我如何找到所有设置属性的地方?

问题描述

| 查找使用属性的所有代码很容易,但是如何找到仅设置属性代码呢? (当我在“集合”上执行“查找所有引用”时,它只是在属性本身上执行“查找所有引用”,包括仅读取该属性代码。)     

解决方法

您可以使用Resharper。 或者,将setter设置为private(或完全注释掉setter)并重新编译。尝试设置属性时会出现错误。     ,尝试注释属性的“ 0”部分,并对其进行构建会在所有使用该属性的地方产生错误。     ,对于它的价值,这将在VS2019中实现。 具体来说,“查找所有引用”窗口具有一个新的“查找”列,可以对“写”引用进行过滤: 添加了此功能的特定Github PR计划包含在Visual Studio 2019预览版2(16.0.P2)中https://github.com/dotnet/roslyn/issues/22545 完整版VS2019计划于2019年第一季度发布。     ,您可以在
propertyName =
上运行文本搜索-您可以尝试使用正则表达式搜索来在名称和ѭ2between之间保留0到n个空格。     ,AFAIK,这无法使用Visual Studio的标准功能完成-它不会对属性做任何特殊的操作以检查搜索时是在左侧还是在右侧使用这些属性,并且可以肯定的是, \不能告诉它这样做。 要提供一个选项而不必运行额外的正则表达式或安装其他软件,您可以浏览结果窗口以让您的眼睛扫描左侧的事件-可能不是最有效的方法,但我不确定我认为优于其他建议。 最后,@ Kamyar关于使属性不再可访问的建议似乎值得一看,但这取决于您的项目编译需要多长时间,找到所有内容可能还需要更长的时间-我\不知道为什么您需要Resharper来执行此操作。     ,这是一个相当强大的解决方案,即使没有使用第三方工具的Visual Studio,也可以用于非属性。请确保在“查找”中选择“匹配大小写”和“使用正则表达式”选项。 1.对于除“后缀/前缀增加”和“班次分配”以外的所有任务:
  (^|[^\\w.])MyVariable\\s*([\\+\\-\\*/%&|\\^]|)=[\\w\\s]
2.对于后缀/前缀增量和班次分配:
  ((^|[^\\w.])MyVariable\\s*(\\+\\+|--)|(\\+\\+|--)\\s*MyVariable[^\\w.]|(^|[^\\w.])MyVariable\\s*(<<|>>)=)
3.对于输出/参考参数(属性不适用):
  (^|[^\\w.])(out|ref)\\s+MyVariable[^\\w.]
注意事项: 仅C#.NET。 仅限于Visual Studio 2012+。 如果\“ = \”后跟EOL,则不起作用。 如果\“ MyVariable \”后跟EOL,则不起作用。 根据查找的起点和范围以及变量/属性的范围,可能会发现不必要的更多/更少引用。如有疑问,请在\“ more \”旁边输入错误,这样您就不会错过任何内容。 不适用于\“。\”前缀的变量/属性。 6.1。除非您将其包含在\“ MyVariable \”(即\“ MyStructVariable.MyStructField \”或\“ MyObjectVariable.MyObjectField \”)中,否则您可能会发现引用过多,因为可能使用了其他结构或对象变量分配给相同的结构或对象字段或属性。