C# と VB.NET の質問掲示板

ASP.NET、C++/CLI、Java 何でもどうぞ

C# と VB.NET の入門サイト

Re[2]: イベント○○は使用されていません。


(過去ログ 123 を表示中)

[トピック内 3 記事 (1 - 3 表示)]  << 0 >>

■73579 / inTopicNo.1)  イベント○○は使用されていません。
  
□投稿者/ いしまる (1回)-(2014/10/13(Mon) 12:21:08)

分類:[C#] 

お世話になります。
C#を使用していると変数やイベントが宣言されているのに使用されない場合、xx is never used(使用されていません)の警告が出るかと思います。
以下のようなクラスA,B,Cがあるとき、クラスBのイベントのみ上記の警告が表示されます。

using System;

public class ClassA
{
	public event Action EventA = delegate { };

	public ClassA()
	{
		EventA();
	}
}

public class ClassB<T>
{
	public event Action EventB = delegate { };

	public ClassB()
	{
		EventB();
	}
}

public class ClassC<T>
{
	public event Action<int> EventC = delegate { };

	public ClassC()
	{
		EventC( 0 );
	}
}

このことから、ジェネリッククラスで引数のないイベントを定義するとこの警告が発生するのかな?と考えたのですが、
そのようになっている理由がわからず、原因は別のところにあるのかもしれないとも考えています。
皆様のお知恵を拝借できれば幸いです。よろしくお願いいたします。

引用返信 編集キー/
■73588 / inTopicNo.2)  Re[1]: イベント○○は使用されていません。
□投稿者/ 魔界の仮面弁士 (146回)-(2014/10/14(Tue) 12:44:11)
No73579 (いしまる さん) に返信
> C#を使用していると変数やイベントが宣言されているのに使用されない場合、
> xx is never used(使用されていません)の警告が出るかと思います。

逆質問になってしまいますが、お使いの Visual Studio のバージョンは何でしょうか。


提示頂いたサンプルを、コンソールアプリとして VS2010/VS2012 でビルドしてみましたが、
ビルド時の警告レベルを 0 〜 4 のいずれにしても、警告は報告されませんでした。


『is never used』という警告文からすると、
 警告レベル 3 [CS0169]
 http://msdn.microsoft.com/ja-jp/library/x7sk421w.aspx

 警告レベル 4 [CS0649]
 http://msdn.microsoft.com/ja-jp/library/03b5270t.aspx

このあたりでしょうか。
それともビルド警告ではなく、分析ツールの警告メッセージなのでしょうか。
引用返信 編集キー/
■73648 / inTopicNo.3)  Re[2]: イベント○○は使用されていません。
□投稿者/ いしまる (2回)-(2014/10/21(Tue) 22:30:05)
ご回答ありがとうございます。
返信が遅くなり申し訳ありません。

VisualStudioのバージョンは2010ですが、ゲームエンジンUnityで使用していました。
ご助言の通り、VisualStudio単体で開発したコンソールアプリケーションですと、上記の警告は発生しませんでした。
VisualStudio単体の場合、以下のコードのクラスBのみ警告が表示されました。
代入されておらず、なおかつ呼び出されていない場合のみ警告が発生するようです。

using System;

public class ClassA
{
event Action EventA = delegate { };

public ClassA()
{
}
}

public class ClassB
{
event Action EventB;

public ClassB()
{
}
}

public class ClassC
{
event Action EventC;

public ClassC()
{
EventC();
}
}


このことから、ジェネリッククラスで引数のないイベントを定義すると警告が発生する問題は
Unityで使用されているMonoコンパイラ(詳しくないのでよくわからないのですが)の仕様もしくはバグの可能性もあるかもしれないと感じています。
何か手がかりのようなものがございましたら、よろしくお願いいたします。

引用返信 編集キー/


トピック内ページ移動 / << 0 >>

このトピックに書きこむ

過去ログには書き込み不可

管理者用

- Child Tree -