掲示板システム
ホーム
アクセス解析
カテゴリ
ログアウト
型変換して、参照型の引数をうまく渡す方法は? (ID:87407)
名前
ホームページ(ブログ、Twitterなど)のURL (省略可)
本文
横から割り込んで申し訳ありませんが、 まず、整理してみましょうか... http://www.microsoft.com/japan/msdn/library/default.asp?url=/japan/msdn/library/ja/cpref/html/frlrfsystemthreadinginterlockedclassexchangetopic2.asp 「 Overloads Public Shared Function Exchange( _ ByRef location1 As Object, _ ByVal value As Object _ ) As Object 」 を見てもらうと、 第一引数は、指定した値に設定する変数。 第二引数は、第一引数 パラメータに設定される値。 戻り値は、第一引数の元の値。 ですね。 Dim bThread_Err as Boolean System.Threading.Interlocked.Exchange(bThread_Err, True) とした場合、 Option Strict Onにした状態では、遅延デバインディングができませんので、型変換をしないといけませんね。 では、どうするのか? Dim bThread_Err as Boolean Dim OThread_Err as Object = Ctype(bThread,Object) Dim ORet as Object = System.Threading.Interlocked.Exchange(OThread, True) bThread_Err = Ctype(OThread_Err,Boolean) とすることで解決しますが、スマートになりません。 と考えると、最初から、Object型で処理を行い、必要に応じてキャスト(CType)した方が処理効率が上がります。 納得してもらえたでしょうか?
←解決時は質問者本人がここをチェックしてください。
戻る
掲示板システム
Copyright 2020 Takeshi Okamoto All Rights Reserved.