質問: String. ``` String型が実際に+演算子を実装していないため、String.Concat()の構文上の砂糖にすぎないため、この関数を文字列で使用すると失敗します。 それでは、どのようにして動的にこれが機能するのですか?私は実行時に+がString.Concat()を使って書き換えられるポイントを過ぎていると考えました。
回答: `dynamic`は、C#コンパイラ規則を複製するランタイムヘルパー関数を使用します。これらの規則の1つは、演算子がフレームワークによって定義されていない場合でも、 `string`オブジェクトに対して`+`を許可し`string` 。 `int`などの標準数値型には、カスタム演算子のオーバーロードもなく、コンパイラによっても実行され、実行時に`dynamic`を使用`dynamic`ときに実行する必要があります。これはMicrosoft.CSharp.dllへの参照が必要な理由です: `dynamic`はヘルパー関数なしでは動作できません。