1

.NET では、何かをコンパイルすると、それを逆コンパイルして、Reflectorなどのプログラムを使用してソース コードを表示できます。

私は Objective C の基本を知っており、MonoTouch よりも Objective C を使用しようとしています。私が MonoTouch を使用する理由は、Objective C で行う方法がわからないことがいくつかあるためです。

例えば:

 UdpClient client = new UdpClient("192.168.0.120",5050);
 client.Send(new byte[]{0,1,2,3,4},5);

この 2 行のコードを Objective C で一日中実行しようとしましたが、できませんでした。とにかく、学習の目的で、Reflector と同じように、MonoTouch を Objective C に変換することが可能かどうか疑問に思っていました。

4

2 に答える 2

1

MonoTouch C#をObj-Cに変換するために私が知っているツールはありません。

さまざまなMTC#クラスとメソッドを対応するObj-CにマップするMTRosettaStoneを確認することをお勧めします。

于 2012-05-01T12:15:02.150 に答える
1

Reflector (および同様のツール)は、コンパイルされたコード (アセンブリなど)のILを読み取ることによって機能します。次に、この IL をC#、VB.NET、Delphi、F# などの高レベルの.NET言語に逆コンパイルすることを提案します。

これは、生成されたコードが元のソース コード (IL、メタデータ、またはデバッグ シンボルの一部ではないために失われるものを除く) に似ていることが多く、優れた学習ツールになる可能性があるため、便利です。

Objective C は .NET 言語ではない (そして、知る限り誰も .NET バージョンを作成していない) ため、これはあなたのケースでは機能しません。理論的には、このようなツールは.NET 以外の言語の構文を表示できますが、実際にはあまり役に立ちません。

なんで ?結果のソース コードは実行可能コードにコンパイルされません。たとえば、基本クラス ライブラリ (.NET BCL) へのすべての呼び出しは、Objective C コンパイラによって検出されません。BCL と Apple が提供するさまざまなフレームワーク (iOS および OSX 用) はまったく異なるため (UdpClientサンプル コードなど)、iOS 開発の学習にはあまり役立ちません。

注: MonoTouch は C# (または .NET) を Objective C コードに変換しません。JIT (シミュレーター) または AOT (デバイス) コンパイラーは、ネイティブ (i386 または armv6/7) アセンブリー コードを直接出力します。

于 2012-05-01T12:18:54.247 に答える