
Pernyataan pada kode di atas " myTable.AmountMST + = 100 ; " sebenarnya operasi berbasis set yang akan mempengaruhi semua record yang cocok dengan klausa sebelumnya.
Perbedaan lain adalah bahwa tidak seperti LINQ , yang bergantung pada objek proxy yang dibuat dengan ORM , X + + memiliki real-time kompilasi akses ke metadata database . Hal ini memungkinkan untuk pemeriksaan statis yang lebih ketat daripada C # atau VB.
Seperti banyak bahasa pemrograman , pada dasarnya X++ stack yang eksklusif . IDE , compiler , Format p -code , dan penerjemah yang khusus untuk IBM Axapta , produk yang akhirnya akan menjadi Microsoft Dynamics AX . X + + hampir selalu ditulis untuk instalasi spesifik Axapta , x++ bisa mengikat compiler langsung ke database . Ini berarti bahwa ketika seseorang mengakakses kelas tabel Pelanggan mereka benar-benar mengakses tabel Pelanggan .
Dimulai dengan Dynamics AX 2009 , X + + memperoleh compiler kedua dibangun di atas . NET stack. Hal ini menyebabkan beberapa masalah yang menarik . Seperti versi Visual Basic , X + + digunakan pengumpulan deterministik . Sayangnya pengumpul itu mengakibatkan beberapa masalah kinerja yang parah. Setelah itu mereka memutuskan untuk memanfaatkan salah satu di . NET runtime .
Pindah dari runtime eksklusif untuk . NET menimbulkan tantangan tersendiri . The X + + tim tidak berpikir mereka bisa mendapatkan dana untuk menulis ulang compiler dari end- to-end . Jadi, mereka mulai pada tingkat p -code . Compiler yang sama digunakan , tapi mereka malah menafsirkan p - kode kemudian menjalankan alat bantu yang mengkonversi ke kode IL . Keduanya p - kode dan IL adalah tumpukan berbasis bahasa sehingga hasil terjemahan mengherankan .
Selain pengumpulan deterministik , X + + juga kehilangan fitur client-server yang menarik . Seperti DCOM atau . NET Remoting , fitur di X + + bisa hidup pada kedua server dan klien pada saat yang sama . Setiap metode client - side panggilan pada salah satu kelas ini kemudian akan melakukan perjalanan melintasi eksekusi , memungkinkan untuk beberapa desain arsitektur yang menarik . Sayangnya desain stateful ini skalanya tidak baik sehingga X + + tim ingin berhenti menggunakannya cara itu.
Di beberapa kasus X + + memiliki kelemahan dibandingkan Jawa . Sebagai contoh, dalam sebuah kondisi " if" pernyataan tidak perlu menjadi Boolean : bilangan bulat non - nol dan non -null dievaluasi sebagai benar . Operator = akan mencoba untuk melakukan konversi implisit bahkan jika kehilangan data. Casting dari tipe dasar ke tipe turunan juga implisit sebelum AX 2012 .
Penanganan string di X + + berbeda juga. String dapat bekerja dengan baik dengan tanda dan perbandingan tunggal atau double- kutipan yang tidak sensitif . X + + tidak memiliki tipe data char, tapi satu dapat mendeklarasikan string tetap ukuran 1 . Seperti kebanyakan bahasa berbasis - c , X + + tidak akan membuat kesalahan dengan menggunakan operator tambahan untuk penggabungan . Seperti C # , string literal akan menggunakan backslash ( ) untuk escape sequence kecuali string diawali dengan tanda (@ ) .
Variabel lokal harus dideklarasikan sebelum pernyataan di X + + metode . Ini termasuk variabel lingkaran , membuat sintaks yang sedikit berbeda dari bahasa berbasis C lainnya . Sementara pernyataan yang sama dan mendukung terus dan istirahat .
Pernyataan switch di X + + mendukung beberapa nilai dan ekspresi untuk kasus-kasus . Setiap ekspresi konstan atau pada kasus tertentu dipisahkan dengan koma. X + + tidak mendukung rentang ( misalnya kasus > 5 ) , menempatkannya di antara VB dan C # dalam kurva daya .
X + + memiliki kedua enumerator dan iterator . Iterator di X + + adalah seperti sebuah iterator di Jawa , tidak hanya itu x++ dapat menavigasi juga dapat menambah dan menghapus item sebagai kelanjutannya . X + + pencacah adalah seperti IEnumerator dalam . NET , adalah pandangan read-only yang akan mengotori jika koleksi dimodifikasi .
Penanganan kesalahan yang sebagian besar didasarkan pada penanganan eksepsi terstruktur ditemukan di Jawa dan C # dengan tiga perbedaan penting . Sebuah X + + pengecualian adalah benar-benar hanya kode kesalahan numerik sehingga tidak memiliki informasi yang kaya ditemukan dalam bahasa-bahasa tersebut . X + + juga memiliki pernyataan retry , yang secara efektif goto yang melompat ke awal dari blok try terdekat . Ini bisa sangat berguna untuk menangani kesalahan intermiten seperti kunci mati . X + + tidak memiliki akhirnya blok , yang bisa menjadi masalah mengingat bahwa itu tidak lagi memiliki pengumpulan sampah deterministik baik .
X + + mendukung warisan dan metode utama , tetapi tidak overloading . Untuk mensimulasikan overloading kita harus menggunakan parameter opsional . Seperti Jawa , metode yang virtual secara default , tetapi dapat disegel menggunakan " akhir " kata kunci .
Source: http://sixghadesign.vv.si
Tidak ada komentar:
Posting Komentar