簡體   English   中英

查找已設置變量的所有位置?

[英]Finding all the places a variable has been set?

通常在使用 VS2010 Ultimate 進行開發時,我想檢查代碼庫中的哪個值被設置(所以這是一個賦值)。

有沒有辦法使用 VS2010 Ultimate 或 3rd 方調試工具來獲取代碼庫中設置或獲取變量的所有位置?

無論如何,這最終將在 VS2019 中得到原生支持。

特別是“查找所有引用”窗口有一個新的“種類”列,可以過濾“寫入”引用:

在此處輸入圖片說明

添加此功能的特定 GitHub PR 計划包含在 Visual Studio 2019 Preview 2 (16.0.P2) https://github.com/dotnet/roslyn/issues/22545

VS2019 的完整版本是為 2019 年第一季度制定的路線圖

您可以將 CTRL+SHIFT+F 與正則表達式一起使用:MyVariable[ \\t\\r\\n\\v\\f]*=[^=],這將在“=”符號左側搜索“myVariable”。

是的,ReSharper 5 中提供了Value Origins功能。

使用 Ctrl+Shift+F 搜索整個解決方案或使用某些人建議的 Find Usages 並不能回答 OP 的問題 - 它將顯示變量的每個用法,而不僅僅是賦值,並且快速瀏覽該列表可能既乏味又耗時。

免責聲明:我隸屬於 OzCode。

您可以使用 Debugging 插件OzCode ,它具有稱為 Setter 斷點 Setter 斷點的功能,它會在對象的屬性更改時觸發。

在此處輸入圖片說明

這是使用 Visual Studio 的更強大的解決方案,無需 3rd 方工具:

1. 對於除 Post-/Pre-fix Increment 和 Shift 分配以外的所有分配:

  (^|[^\w.])MyVariable\s*([\+\-\*/%&|\^]|)=[\w\s]

2. 對於 Post-/Pre-fix Increment 和 Shift 分配:

  ((^|[^\w.])MyVariable\s*(\+\+|--)|(\+\+|--)\s*MyVariable[^\w.]|(^|[^\w.])MyVariable\s*(<<|>>)=)

3. 對於輸出/參考參數(屬性不適用):

  (^|[^\w.])(out|ref)\s+MyVariable[^\w.]

警告:

  1. 僅限 C#.NET。
  2. 僅限 Visual Studio 2012+。
  3. 如果“=”后跟 EOL,則不起作用。
  4. 如果“MyVariable”后跟 EOL,則不起作用。
  5. 根據查找的起點和范圍以及變量/屬性的范圍,可能會找到比必要更多/更少的引用。 如有疑問,請在“更多”一側出錯,這樣您就不會錯過任何內容。
  6. 不適用於以“.”為前綴的變量/屬性。 6.1. 除非您將其作為“MyVariable”的一部分(即“MyStructVariable.MyStructField”或“MyObjectVariable.MyObjectField”)包含在內,但您可能會發現引用太少,因為可能有其他結構或對象變量用於對同一結構或對象字段或屬性。

您可以使用命令“查找引用”(Ctrl + K、Ctrl + R)

正如上面的 Daniel Pratt 所問的那樣,我不確定您的意思是屬性、變量還是其他東西。 但是,我經常使用的一個相關功能是“查找用法”,可以通過右鍵單擊方法、類、成員等來訪問它。它不僅可以找到分配,還可以找到所有用途 - 但是也許這可以縮小范圍在分配后手動篩選。

有時舊的技術會成為最好的。 也許您可以使用 CTRL + Shift + F 搜索整個解決方案

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM