亚洲在线久爱草,狠狠天天香蕉网,天天搞日日干久草,伊人亚洲日本欧美

為了賬號安全,請及時綁定郵箱和手機立即綁定
已解決430363個問題,去搜搜看,總會有你想問的

從未使用過 Resharper 方法

從未使用過 Resharper 方法

C#
慕無忌1623718 2021-10-09 10:53:10
我在一個項目中有一個面向公眾的界面,最終將成為一個 nuget 包。這是代碼:public interface MyInterface{    void MyMethod();}現在這個接口中的每個方法都沒有在這個庫中使用,而是通過包在其他中使用。然而,這里的每一個方法都有一個警告Method x is never used.是否有一種簡單的方法可以告訴 ReSharper 在我打開的每個解決方案中的每個項目中忽略每個公共方法,以便不在公共方法中執行此檢查。我有幾種方法可以解決這個問題,但這太乏味了。選項 1:[UsedImplicitly]在我班級中的每個方法上。在我看來,這太乏味了。選項 2:[SuppressMessage("ReSharper", "UnusedMember.Global")]不那么乏味,但仍然必須在每個類上實現。一定有更好的方法?我還在某處讀到只有在Enable solution-wide analysis檢查時才會發生這種情況。在我的情況下不是。我在下面找到了這個設置Reshaper Options > Code Inspection > Settings
查看完整描述

3 回答

?
慕尼黑8549860

TA貢獻1818條經驗 獲得超11個贊

在您的情況下,由于您提到 SWEA 已禁用,我建議禁用以下復選框ReSharper | Options | Code Inspection | Settings | General | Show unused non-private type members when solution-wide analysis is off。


查看完整回答
反對 回復 2021-10-09
?
四季花海

TA貢獻1811條經驗 獲得超5個贊

取自@Matthias 對原始問題的評論,對于有意從庫中導出的公共方法,請使用包和命名空間中[PublicAPI]的類的屬性JetBrains.Annotations:


using JetBrains.Annotations;


[PublicAPI]

public interface MyInterface

{

    void MyMethod();

}

這不是原始問題的理想答案,因為它與應用于[UsedImplicitly]每個類一樣乏味。然而,對我來說,它比全面禁用檢查更有優勢,因為它會指出我在公開方法或類時出錯的地方。


它也有一個優勢,[UsedImplicitly]因為它是對該類應該由庫的使用者使用的意圖的積極聲明。[UsedImplicitly],相比之下,會向我表明該方法/類以某種方式(例如反/序列化)與當前解決方案的上下文一起使用。


查看完整回答
反對 回復 2021-10-09
  • 3 回答
  • 0 關注
  • 366 瀏覽

添加回答

舉報

0/150
提交
取消
微信客服

購課補貼
聯系客服咨詢優惠詳情

幫助反饋 APP下載

慕課網APP
您的移動學習伙伴

公眾號

掃描二維碼
關注慕課網微信公眾號