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

わんくま同盟

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

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


(過去ログ 154 を表示中)
■89346 / )  Re[3]: C#におけるCombobox
□投稿者/ 魔界の仮面弁士 (1949回)-(2018/11/20(Tue) 18:32:40)
2018/11/20(Tue) 19:12:14 編集(投稿者)

No89344 (魔界の仮面弁士) に追記
> どこのコンバーターでしょうか?

これなんですが、

・form1 が this に変換されている
・ComboBox1 が comboBox1 に変換されている

という『意訳』っぷりが見て取れるので、
どのコンバーターを使っているのか、単純に興味があるので、
教えてもらえると嬉しいです。

(そもそも最近のバージョンの VB だと、元のコードも BC31139 エラーで弾かれそうなんですが)


No89345 (WebSurfer さん) に返信
> Items[0] に変換してくれるサービスがあれば教えていただけると幸いです。

単純な構文解析だけでは、「引数付きプロパティ」を「メソッド」の呼び出しと
区別できませんから、丸括弧から角括弧への変換ができないのは、
ある程度仕方ないでしょうね。

元の VB 製アセンブリがあるのなら、現在利用している変換器と併用して、
アセンブリをロードするタイプのツール(たとえば、ILSpy など)を
併用して見比べてみるのも良いかも知れません。
http://www.atmarkit.co.jp/fdotnet/dotnettips/1055ilspy/ilspy.html
https://github.com/icsharpcode/ILSpy/releases


ただ、このタイプの変換器は、VB コンパイラが自動的に挿入するヘルパーも
そのまま直訳するので、今回のコードだと

this.comboBox1.Text = this.comboBox1.GetItemText(System.Runtime.CompilerServices.RuntimeHelpers.GetObjectValue(this.comboBox1.Items[0]));

などに過訳される可能性がありそうです。

# 前回紹介されていた dnSpy は、使ったことが無いので分からないです。
返信 編集キー/


管理者用

- Child Tree -