[C#] لماذا C # و ف يكون الجيني؟ ما الفائدة التي توفرها؟ الجينات، فتو


Answers

شخصيا، أعتقد أنها تسمح لتوفير الكثير من الوقت. ما زلت تستخدم .NET فريميورك 1.1 وفي كل مرة تريد مجموعة محددة، تحتاج إلى إنشاء مجموعة مكتوبة بقوة من خلال تنفيذ كولكتيونباس. مع الجنيسة، تحتاج فقط إلى الإعلان عن مجموعتك مثل تلك List<MyObject> وانها فعلت.

Question

من ويكيبيديا :

البرمجة العامة هي أسلوب البرمجة الحاسوبية التي تكتب الخوارزميات من حيث الأنواع التي يتم تحديدها في وقت لاحق والتي يتم بعد ذلك مثيل عند الحاجة لأنواع محددة المقدمة كمعلمات وكان رائدا من قبل أدا التي ظهرت في عام 1983. هذا النهج يسمح الكتابة وظائف أو أنواع مشتركة تختلف فقط في مجموعة الأنواع التي تعمل عند استخدامها، وبالتالي تقليل الازدواجية.

توفر الجنيسة القدرة على تحديد الأنواع التي تم تحديدها لاحقا. لا يلزمك إرسال عناصر إلى نوع لاستخدامها لأنها مكتوبة بالفعل.

لماذا C # و ف يكون جينيريكش؟ ما الفائدة التي توفرها؟ ما هي الفوائد التي تجدها باستخدامها؟

ما اللغات الأخرى أيضا الأدوية؟




وتسمح الجينات في .net، مثل أساليب الإرث والإرشاد، بتقليص الازدواجية البرمجية. اسمحوا لي أن أشرح عن طريق إعادة بيعها.

إذا كانت جميع الطبقات ذات الجد المشترك لها طريقة شائعة، ضع الطريقة الشائعة في الجد المشترك (الميراث).

إذا كان لدى بعض الفئات طريقة شائعة تستخدم عقدا عاما لتحقيق بعض النتائج، فقم بإتباع الطريقة الشائعة في طريقة التمديد على ذلك العقد العام.

إذا كانت هناك عدة طرق أو فصول لها نفس الشفرة التي تختلف فقط عن الأنواع التي تم التصرف عليها (خاصة عندما تكون تفاصيل النوع غير ذات صلة بتشغيل الطريقة)، فجمع تلك الأساليب أو الفئات إلى عام.




الجينات في .NET ممتازة لمجموعات الكائن. يمكنك تحديد نوع الكائن الخاص بك ولكن تريد أن تكون قادرة على أن يكون، على سبيل المثال، قائمة دون كتابة أي رمز لذلك، والوصول إلى كافة وظائف فعالة من مجموعة .NET قائمة عامة في حين يجري نوع آمنة ل T. انها أشياء عظيمة.




أسهل طريقة لشرح ذلك هي إعطاء مثال. لنفرض أنك تريد هاستابلز اثنين، أحدهما يقوم بتخطيط كائنات من نوع سترينغ لكتابة إنت و واحد يقوم بتخطيط كائنات من نوع سترينغ لكتابة مزدوج. هل يمكن تحديد هاشتابل ومن ثم استخدام K و V أنواع. دون الأدوية، يجب عليك استخدام نوع "الكائن" الذي، بالإضافة إلى الحاجة إلى أن تكون المدلى بها لتكون ذات مغزى، والتخلي عن تايزافيتي. مجرد مثيل هاشتابل و هاشتابل وكنت قد حصلت على الجداول التجزئة الخاصة بك مع تيبتشيكينغ المناسبة وجميع.




أكبر ميزة من الأدوية العامة على الأنواع غير العامة في C # (وليس جافا، جافا هي قصة مختلفة) هو أنها أسرع بكثير. و جيت يولد أفضل رمز الجهاز يمكن أن تأتي مع لنوع معين. List<int> هو في الواقع قائمة من إنتتس وليس الكائنات الصحيحة التفاف إنت. وهذا يجعل أنواع عامة بسرعة بذهول وأيضا اكتب آمنة والتي يمكن أن تساعدك على الكشف عن الكثير رهيبة من الأخطاء في وقت تجميع :)




في الهدف-C يمكنك استخدام بروتوكولات لتحقيق أهداف الأدوية. وبما أن اللغة ضعت كتابة ضعيفة، فإنه عموما ليس بقدر من القلق كما عندما كنت تقاتل نظام نوع لاستخدام مسار رمز واحد لأنواع كثيرة.




من مسن :

توفر جينيريكس الحل لقيد في الإصدارات السابقة من وقت تشغيل اللغة الشائعة و C # اللغة التي يتم إنجاز التعميم من قبل أنواع الصب من وإلى نوع قاعدة عام كائن. من خلال إنشاء فئة عامة، يمكنك إنشاء مجموعة آمنة نوع في وقت تجميع.

اقرأ بقية هذه المقالة للاطلاع على بعض الأمثلة عن كيف يمكن ل "جينيريك" تحسين إمكانية قراءة الشفرة وأدائها.