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

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

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

Re[3]: ジェネリックの型制約違反をコンパイルエラーとしたい


(過去ログ 49 を表示中)

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

■26577 / inTopicNo.1)  ジェネリックの型制約違反をコンパイルエラーとしたい
  
□投稿者/ 鶏唐揚 (310回)-(2008/10/15(Wed) 00:26:05)

分類:[VB.NET/VB2005 以降] 

2008/10/15(Wed) 00:37:52 編集(投稿者)
[OS]XP/Vista
[VB]2008

度々お世話になっております

ジェネリックで型パラメータにStructure制約をつけ
値型のみ許可するようにしているメソッドがあります。
このメソッドは、ジェネリックではないオーバーロードされたメソッドも存在します

例:
  Public Function Test(Of T As Structure)(ByVal src As T) As T
    'なんか処理
  End Function

  Public Function Test(ByVal src As String) As String
    'なんか処理
  End Function


この状態で、呼び出し元で型パラメータに

'未初期化は警告として出る
Dim f1 As IO.StreamReader
Dim f2 As IO.StreamReader

f2 = Test(Of IO.StreamReader)(f1)

のように、Stringやその他クラス等、参照型を指定してもコンパイルエラーにも警告にもなりません。
しかし、呼び出し行に置いたブレイクポイントが実行時に次行に避けたり
そもそもブレイクポイント置けない場合もあったり…
実行ステップも、該当行を避けています。

型パラメータ指定が間違っているにも拘らず、実行時エラーが出ないどころか
スルーしつつ継続してしまうのはバグの原因になると思ったのですが、
コンパイルエラーとする設定方法がわかっておりません。

プロジェクトプロパティ内の「警告の構成」では、
暗黙型変換.../遅延バインディング.../暗黙的な型... の3つを エラー とし、
その他はすべて 警告 としています。

何か情報があればご提供お願いいたします

引用返信 編集キー/
■26579 / inTopicNo.2)  Re[1]: ジェネリックの型制約違反をコンパイルエラーとしたい
□投稿者/ Hongliang (303回)-(2008/10/15(Wed) 00:53:06)
コンパイルエラー BC32105 が出ます。
ので、古いソースのまま、現在のソースファイルがコンパイルの対象になっていない可能性があります。
リビルドかけるとどうでしょうか。
引用返信 編集キー/
■26581 / inTopicNo.3)  Re[2]: ジェネリックの型制約違反をコンパイルエラーとしたい
□投稿者/ 鶏唐揚 (311回)-(2008/10/15(Wed) 01:17:19)
2008/10/15(Wed) 01:18:44 編集(投稿者)

No26579 (Hongliang さん) に返信
> コンパイルエラー BC32105 が出ます。
> ので、古いソースのまま、現在のソースファイルがコンパイルの対象になっていない可能性があります。
> リビルドかけるとどうでしょうか。
返信ありがとうございます

上記メソッドは静的クラス(VBではモジュール)に存在するもので、
ためしに新規プロジェクト→既存ファイル追加 をやったり、リビルドもかけてみました。
しかし残念ながら状況は変わらずです。

VBはC#と違って、よほど特殊なもの(サードパーティ製コントロールでIDEに影響する変な処理やってるとかライセンス関係とか)でなければ
リビルドしなくても構文上のエラーはリアルタイムに検出してくれるはずだと思っています
(粗悪な環境では、コード開いたりすると頻繁にコンパイラらしきプロセスが落ちますので簡易コンパイルみたいなのをかけてる?)

環境orプロジェクトの設定 が一番怪しいと現時点では睨んでますが、
じゃぁ具体的にどこが悪いのか、ということまで調べ切れていません。
もしかしたらコードの組み方によるものかもしれません

こちらとしても提示できる情報が少ないため、もうしばらく調べてみます。

#なぜか解決済み入れてたので解除…今日は寝ますorz
引用返信 編集キー/
■26582 / inTopicNo.4)  Re[3]: ジェネリックの型制約違反をコンパイルエラーとしたい
□投稿者/ 鶏唐揚 (312回)-(2008/10/15(Wed) 09:01:51)
どうもParamArray絡みのような気がしてきました

設計を見直してみます
情報ありがとうございました
解決済み
引用返信 編集キー/


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

このトピックに書きこむ

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

管理者用

- Child Tree -