2016年4月9日土曜日

[Visual Studio] C# のお節介な警告を消す方法

How to hide warnings on C#

Visual Studioで開発したAzureのWebジョブアプリ用
クエリちゃんの動画投稿数をツイートするサービス
は完成するまで多くの警告が表示されました。
Visual Studioの警告は「直さなくても動作するけど直した方がいい」というものがほとんどで、開発中に表示されることはよくあります。
警告を消す方法を調べてまとめました。


環境

  • Windows 10
  • Visual Studio 2015 Community


警告はアノテーションで消せる

たとえば
この非同期メソッドには 'await' 演算子がないため、同期的に実行されます。'await' 演算子を使用して非ブロッキング API 呼び出しを待機するか、'await Task.Run(...)' を使用してバックグラウンドのスレッドに対して CPU 主体の処理を実行することを検討してください。
という警告を消すとします。
blog.fujiu.jp [Visual Studio] C# のお節介な警告を消す方法

エラー一覧でコードの数字を調べます。
コードに CS1998 とあるので数字は 1998 です。

ソースに
#pragma warning disable 1998
と書くと、それ以降の CS1998 の警告は全て無視されます。

また、
#pragma warning restore 1998
と書くと、それ以降の CS1998 の警告が表示されるようになります。

警告を消したい範囲を
#pragma warning disable 1998

#pragma warning restore 1998
で囲むように書けば別の範囲のCS1998の警告をもれなく発見できます。

別の警告
(略) 呼出しの結果に 'await' 演算子を適用することを検討してください。
を消したい場合はコードが CS4014 なので
#pragma warning disable 4014

#pragma warning restore 4014
で囲みます。


コードを正しく書けば警告は解決する

Visual Studioの警告はほとんどが解決手段がある場合に表示されます。
たとえば 1998 の警告
この非同期メソッドには 'await' 演算子がないため、同期的に実行されます。
が表示されるメソッドで、オブジェクトを返さない(void関数のようにしたい)場合は

をメソッドの最後に追加します。

別の警告
(略) 呼出しの結果に 'await' 演算子を適用することを検討してください。
の場合はメソッドの定義にawaitキーワードを追加します。
Mainエントリーポイントのように awaitキーワード が使えないメソッドは、非同期メソッドをWait()メソッドで呼びます。
Wait()メソッドについては
C#のAzure用Webジョブ開発ではまったところ
でまとめてあります。

ほとんどの警告はコードを修正することで解決します。
完成時は警告やアノテーションは残さないようにコードを修正するべきです。


関連ブログ

[Java] Android StudioやEclipseのお節介な警告を消す方法
C#のAzure用Webジョブ開発ではまったところ
[Azure] クエリちゃんの動画投稿数をツイートするサービス をGitHubに公開するまで
Visual Studio Community 2015 をISOファイルからWindows10にインストールする方法
[Android] Xamarin でアプリを作ってみました

以上、参考になれば幸いです。

0 件のコメント:

コメントを投稿

注: コメントを投稿できるのは、このブログのメンバーだけです。