Bagikan melalui


Metode System.Linq.Expressions.Expression.Add

Artikel ini menyediakan keterangan tambahan untuk dokumentasi referensi untuk API ini.

Metode Add mengembalikan BinaryExpression yang memiliki properti Method yang disetel ke metode yang menerapkannya. Properti Type diatur ke jenis simpul. Jika node diangkat, properti IsLifted dan IsLiftedToNull keduanya true. Jika tidak, mereka adalah false. Properti Conversion adalah null.

Informasi berikut menjelaskan metode penerapan, jenis node, dan apakah node diangkat.

Metode penerapan

Aturan berikut menentukan metode penerapan yang dipilih untuk operasi:

  • Jika properti Type dari left atau right mewakili jenis yang ditentukan pengguna yang melakukan overload pada operator penambahan, maka MethodInfo yang mewakili metode tersebut adalah metode penerapan.
  • Jika tidak, jika left.Type dan right.Type adalah tipe numerik, metode pelaksanaannya adalah null.

Jenis node dan dinaikkan versus tidak dinaikkan

Jika metode penerapan bukan null:

  • Jika left. Type dan right. Type dapat ditetapkan ke jenis argumen yang sesuai dari metode yang menerapkan, node tidak diangkat. Jenis simpul adalah jenis pengembalian dari metode penerapan.

  • Jika dua kondisi berikut terpenuhi, simpul diangkat dan tipe simpul adalah tipe nullable yang sesuai dengan tipe pengembalian dari metode yang menerapkannya:

    • left.Tipe dan right.Tipe keduanya adalah tipe nilai yang setidaknya satu bersifat nullable dan tipe non-nullable yang sesuai sama dengan tipe argumen yang sesuai dari metode yang diimplementasikan.
    • Jenis pengembalian metode yang diimplementasikan adalah jenis nilai yang tidak dapat bernilai null.

Jika metode penerapan adalah null:

  • Jika left.Tipe dan right.Tipe keduanya tidak dapat bernilai null, node tidak diangkat. Jenis simpul adalah jenis hasil operator penambahan yang telah ditentukan sebelumnya.
  • Jika left.Tipe dan right.Tipe keduanya bisa bernilai null, simpul diangkat. Jenis node adalah jenis nullable yang sesuai dengan jenis hasil operator penambahan yang telah ditentukan sebelumnya.