| ■No83360 (惹起 さん) に返信 > ccc = DirectCast(bbb, Class_Na,e) > これが一般的な用法でしょうか?
引数が 3 つ渡されているのは一般的では無いですね。(^_^;) もしかして、 Dim ccc = DirectCast(bbb, Class_Name) の間違いでしょうか。
Sub aaa(x As Object) ではなく Sub aaa(x As Class_Name) に対して渡したいのなら、 Dim ss As New Task(Sub() aaa(bbb)) という手もあります。今回の要件に合うかは分かりませんが。
> Dim objWSH As Object = CreateObject("WScript.Shell") > Dim qqq As String = objWSH.SpecialFolders("Desktop") & "\" & filename
わざわざ COM オブジェクトを使わずとも、この程度なら Dim qqq = System.IO.Path.Combine(My.Computer.FileSystem.SpecialDirectories.Desktop, filename) もしくは Dim qqq = System.IO.Path.Combine(Environment.GetFolderPath(Environment.SpecialFolder.Desktop), filename) で十分だと思いますよ。
WshShell オブジェクトを使うとなると、使用後に System.Runtime.InteropServices.Marshal.ReleaseComObject メソッドでの 解放処理も必要になってくるでしょうし、あまりお奨めしません。
> とのエラーが出ますが、これはどのように回避すれば良いでしょうか? CallByName メソッドを使って呼び出す分には問題ありません。もしくは、その部分だけを Option Strict Off 設定の Partial Class に切り出すようにするかですね。 |