MiKo Analyzers
1.0.0
يوفر المحللين الذين يعتمدون على منصة برنامج التحويل البرمجي .NET (Roslyn) ويمكن استخدامه داخل Visual Studio 2019 (v16.11) أو 2022 (v17.11).
يتم وصف كيفية تثبيت محلل Roslyn هنا.
يمكن العثور على لقطات الشاشة حول كيفية استخدام مثل هذه المحللين.
تسرد الجداول التالية جميع القواعد الـ 473 التي يتم توفيرها حاليًا من قبل المحلل.
| بطاقة تعريف | عنوان | تمكين بشكل افتراضي | CodeFix المتاحة |
|---|---|---|---|
| Miko_0001 | الطريقة كبيرة جدًا | ✓ | - |
| Miko_0002 | الطريقة معقدة للغاية | ✓ | - |
| miko_0003 | النوع كبير جدا | ✓ | - |
| miko_0004 | الطريقة لديها الكثير من المعلمات | ✓ | - |
| miko_0005 | الوظيفة المحلية كبيرة جدًا | ✓ | - |
| miko_0006 | الوظيفة المحلية معقدة للغاية | ✓ | - |
| miko_0007 | الوظيفة المحلية لديها الكثير من المعلمات | ✓ | - |
| بطاقة تعريف | عنوان | تمكين بشكل افتراضي | CodeFix المتاحة |
|---|---|---|---|
| Miko_1000 | "System.EventArgs" يجب أن تكون لاحقة مع "EventArgs" | ✓ | ✓ |
| Miko_1001 | يجب تسمية معلمات "System.EventArgs" | ✓ | ✓ |
| Miko_1002 | يجب تسمية المعلمات وفقًا لإرشادات تصميم Framework .NET لمنالجات الأحداث | ✓ | ✓ |
| Miko_1003 | يجب أن تتبع أسماء طريقة التعامل مع الأحداث إرشادات تصميم إطار عمل .NET | ✓ | ✓ |
| Miko_1004 | يجب ألا تحتوي الأحداث على مصطلح "حدث" بأسمائهم | ✓ | ✓ |
| Miko_1005 | يجب تسمية متغيرات "System.EventArgs" بشكل صحيح | ✓ | ✓ |
| Miko_1006 | يجب أن تستخدم الأحداث "EventHandler <T>" مع "EventArgs" التي تم تسميتها على اسم الحدث | ✓ | - |
| Miko_1007 | يجب أن تكون الأحداث وأنواع "EventArgs" المقابلة في مساحة الاسم نفسها | ✓ | - |
| Miko_1008 | يجب تسمية المعلمات وفقًا لإرشادات تصميم Framework .NET لمعالجات الأحداث التبعية | ✓ | ✓ |
| Miko_1009 | يجب تسمية متغيرات "System.EventHandler" بشكل صحيح | ✓ | ✓ |
| Miko_1010 | يجب ألا تحتوي الطرق على "canexecute" أو "تنفيذ" في أسمائهم | ✓ | ✓ |
| miko_1011 | يجب ألا تحتوي الأساليب على "افعلها" في أسمائهم | ✓ | ✓ |
| Miko_1012 | يجب تسمية الأساليب "رفع" بدلاً من "النار" | ✓ | ✓ |
| Miko_1013 | لا ينبغي تسمية الأساليب "إعلام" أو "onnotify" | ✓ | ✓ |
| Miko_1014 | لا ينبغي تسمية الأساليب مع "فحص" غامض | ✓ | ✓ |
| Miko_1015 | يجب تسمية الأساليب "تهيئة" بدلاً من "init" | ✓ | ✓ |
| Miko_1016 | يجب تسمية أساليب المصنع "إنشاء" | ✓ | ✓ |
| Miko_1017 | لا ينبغي أن تكون الأساليب مسبقة بـ "GET" أو "SET" إذا تليها "أو" أو "أو" | ✓ | ✓ |
| Miko_1018 | لا ينبغي أن تكون الأساليب مرغوبة بالشفرة من الفعل | ✓ | ✓ |
| Miko_1019 | يجب تسمية طرق "Clear" و "إزالة" بناءً على عدد المعلمات الخاصة بهم | ✓ | ✓ |
| Miko_1020 | يجب أن تكون أسماء الكتابة محدودة في الطول | - | - |
| Miko_1021 | يجب أن تكون أسماء الطريقة محدودة في الطول | - | - |
| miko_1022 | يجب أن تكون أسماء المعلمات محدودة في الطول | - | - |
| miko_1023 | يجب أن تكون أسماء الميدان محدودة في الطول | - | - |
| miko_1024 | يجب أن تكون أسماء الممتلكات محدودة في الطول | - | - |
| Miko_1025 | يجب أن تكون أسماء الأحداث محدودة في الطول | - | - |
| Miko_1026 | يجب أن تكون الأسماء المتغيرة محدودة في الطول | - | - |
| Miko_1027 | يجب أن تكون الأسماء المتغيرة في الحلقات محدودة في الطول | - | - |
| miko_1028 | يجب أن تكون أسماء الوظائف المحلية محدودة في الطول | - | - |
| Miko_1030 | لا ينبغي أن تحتوي الأنواع على علامة "مجردة" أو "قاعدة" للإشارة إلى أنها أنواع أساسية | ✓ | ✓ |
| miko_1031 | يجب ألا تستخدم أنواع الكيانات لاحقة "نموذج" | ✓ | ✓ |
| miko_1032 | يجب ألا تستخدم الطرق التي تتعامل مع الكيانات "نموذجًا" كعلامة | ✓ | ✓ |
| miko_1033 | يجب ألا تستخدم المعلمات التي تمثل الكيانات لاحقة "نموذج" | ✓ | ✓ |
| miko_1034 | يجب ألا تستخدم الحقول التي تمثل الكيانات لاحقة "نموذج" | ✓ | ✓ |
| miko_1035 | يجب ألا تستخدم الخصائص التي تتعامل مع الكيانات علامة "نموذج" | ✓ | ✓ |
| Miko_1036 | يجب ألا تستخدم الأحداث التي تتعامل مع الكيانات علامة "نموذج" | ✓ | ✓ |
| miko_1037 | لا ينبغي أن تكون أنواع الأنواع مع "النوع" أو "الواجهة" أو "الفئة" أو "الهيكل" أو "السجل" أو "التعداد" | ✓ | ✓ |
| miko_1038 | يجب أن تنتهي الفئات التي تحتوي على طرق تمديد بنفس اللاحقة | ✓ | ✓ |
| miko_1039 | يجب أن تحتوي المعلمة "هذه" لطرق التمديد على اسم افتراضي | ✓ | ✓ |
| miko_1040 | لا ينبغي أن يتم اللاحقة المعلمات مع تفاصيل التنفيذ | ✓ | - |
| Miko_1041 | لا ينبغي أن تكون الحقول مرغوبة بتفاصيل التنفيذ | ✓ | - |
| miko_1042 | يجب أن يكون للمعلمات "cancellationToken" اسمًا محددًا | ✓ | ✓ |
| miko_1043 | يجب أن يكون للمتغيرات "cancellationToken" اسم محدد | ✓ | ✓ |
| miko_1044 | يجب أن يتم اللاحقة الأوامر مع "الأمر" | ✓ | ✓ |
| miko_1045 | لا ينبغي أن تكون الطرق التي يتم استدعاؤها بواسطة الأوامر مع ذلك مع "أمر" | ✓ | ✓ |
| Miko_1046 | يجب أن تتبع الأساليب غير المتزامنة النمط غير المتزامن القائم على المهام (TAP) | ✓ | ✓ |
| Miko_1047 | الأساليب التي لا تتبع النمط غير المتزامن القائم على المهام (TAP) لا ينبغي أن تكذب بشأن عدم التزامن | ✓ | ✓ |
| Miko_1048 | يجب أن تنتهي الفصول الدراسية التي هي محولات القيمة باحقة محددة | ✓ | ✓ |
| miko_1049 | لا تستخدم شروط المتطلبات مثل "يجب" أو "يجب" أو "يجب" أو "الحاجة" للأسماء | ✓ | ✓ |
| Miko_1050 | يجب أن يكون لقيم الإرجاع أسماء وصفية | ✓ | ✓ |
| Miko_1051 | لا تلاحق معلمات مع أنواع المندوبين | ✓ | ✓ |
| miko_1052 | لا تلاحق المتغيرات مع أنواع المندوب | ✓ | ✓ |
| miko_1053 | لا تلاحق الحقول مع أنواع المندوبين | ✓ | ✓ |
| Miko_1054 | لا تسمي أنواع "المساعد" أو "الأداة المساعدة" | ✓ | ✓ |
| Miko_1055 | يجب أن تكون خصائص التبعية مرجحة بـ "خاصية" (كما في إطار .NET) | ✓ | ✓ |
| Miko_1056 | يجب أن تسبق خصائص التبعية بأسماء العقارات (كما في إطار .NET) | ✓ | ✓ |
| miko_1057 | يجب أن تكون مفاتيح خاصية التبعية مع "مفتاح" (كما في إطار .NET) | ✓ | ✓ |
| miko_1058 | يجب أن تسبق مفاتيح خاصية التبعية بأسماء العقارات (كما في إطار .NET) | ✓ | ✓ |
| miko_1059 | لا تسمي الأنواع "ضمنية" أو "تنفيذ" | ✓ | ✓ |
| Miko_1060 | استخدم "<TINTITY> NOTFOUND" بدلاً من "الحصول على <fice> فشل" أو "<fictity> مفقود" | ✓ | ✓ |
| Miko_1061 | يجب أن يكون اسم المعلمة "Try" طريقة [Out] محددة | ✓ | ✓ |
| miko_1062 | يجب أن تتكون أساليب "Can/Have/تحتوي على" | ✓ | - |
| miko_1063 | لا تستخدم الاختصارات في الأسماء | ✓ | ✓ |
| miko_1064 | تعكس أسماء المعلمات معناها وليس نوعها | ✓ | - |
| miko_1065 | يجب تسمية معلمات المشغل وفقًا لإرشادات تصميم إطار عمل .NET | ✓ | ✓ |
| Miko_1066 | يجب تسمية معلمات المنشأة التي يتم تعيينها إلى خاصية | ✓ | ✓ |
| Miko_1067 | يجب ألا تحتوي الأساليب على "أداء" في أسمائهم | ✓ | ✓ |
| miko_1068 | يجب تسمية أساليب سير العمل "canrun" أو "تشغيل" | ✓ | - |
| miko_1069 | تعكس أسماء الممتلكات معناها وليس نوعها | ✓ | - |
| miko_1070 | يجب أن تستخدم متغيرات التجميع المحلية اسم الجمع | ✓ | ✓ |
| miko_1071 | يجب تسمية المتغيرات المنطقية المحلية كبيانات وليس كأسئلة | ✓ | - |
| miko_1072 | يجب تسمية الخصائص أو الأساليب المنطقية كبيانات وليس كأسئلة | ✓ | - |
| miko_1073 | يجب تسمية الحقول المنطقية كبيانات وليس كأسئلة | ✓ | - |
| Miko_1074 | يجب أن تكون الكائنات المستخدمة في القفل مع "قفل" | ✓ | - |
| miko_1075 | لا ينبغي أن تكون أنواع غير النظامية. | ✓ | ✓ |
| Miko_1076 | يجب أن تكون أنواع أحداث المنشور مرجحة بـ "حدث" | ✓ | ✓ |
| miko_1077 | لا ينبغي أن يكون أعضاء التعداد مرغوبًا بـ "التعداد" | ✓ | ✓ |
| miko_1078 | يجب أن تبدأ أسماء طرق البناء بـ "بناء" | ✓ | ✓ |
| miko_1079 | لا ينبغي أن تكون اللاحقة مع "مستودع" | ✓ | ✓ |
| miko_1080 | يجب أن تحتوي الأسماء على أرقام بدلاً من تهجفها | ✓ | - |
| miko_1081 | لا ينبغي أن يتم اللاحقة الأساليب برقم | ✓ | ✓ |
| miko_1082 | لا ينبغي أن تكون الخصائص مرسومة برقم إذا كانت أنواعها تحتوي على لوحات الأرقام | ✓ | ✓ |
| miko_1083 | لا ينبغي أن تكون الحقول مرسومة برقم إذا كانت أنواعها تحتوي على لوحات الأرقام | ✓ | ✓ |
| miko_1084 | لا ينبغي أن تكون المتغيرات مرسومة برقم إذا كانت أنواعها تحتوي على لوحات الأرقام | ✓ | ✓ |
| Miko_1085 | لا ينبغي أن يتم تلبية المعلمات برقم | ✓ | ✓ |
| Miko_1086 | لا ينبغي تسمية الأساليب باستخدام الأرقام كملوحية | ✓ | - |
| Miko_1087 | معلمات مُنشئ الأسماء بعد نظرائهم في الفئة الأساسية | ✓ | ✓ |
| miko_1088 | يجب تسمية مثيلات Singleton "مثيل" | ✓ | - |
| miko_1089 | لا ينبغي أن تكون الأساليب مسبوقة بـ "GET" | ✓ | ✓ |
| miko_1090 | لا ينبغي أن تكون اللاحقة مع المعلمات مع أنواع محددة | ✓ | ✓ |
| miko_1091 | لا ينبغي أن تكون المتغيرات مرسومة بأنواع محددة | ✓ | ✓ |
| miko_1092 | لا ينبغي أن تكون أنواع "القدرة" مرغوبة بمعلومات زائدة عن الحاجة | ✓ | ✓ |
| miko_1093 | لا تستخدم اللاحقة "كائن" أو "بنية" | ✓ | ✓ |
| miko_1094 | لا تلاحق أنواعها بأسماء مساحة الأسماء السلبية | ✓ | - |
| Miko_1095 | لا تستخدم "حذف" و "إزالة" على حد سواء في الأسماء والوثائق | ✓ | - |
| miko_1096 | يجب أن تستخدم الأسماء "فشلت" بدلاً من "notsuccessful" | ✓ | - |
| miko_1097 | يجب ألا تتبع أسماء المعلمات مخطط التسمية للحقول | ✓ | ✓ |
| miko_1098 | يجب أن تعكس أسماء النوع واجهة (واجبات) الأعمال التي تنفذها | ✓ | - |
| miko_1099 | يجب أن يكون لمطابقة المعلمات على الأسلوب الأسماء الأسماء المتطابقة | ✓ | ✓ |
| miko_1100 | يجب أن تبدأ فئات الاختبار باسم النوع تحت الاختبار | ✓ | - |
| Miko_1101 | يجب أن تنتهي فئات الاختبار بـ "الاختبارات" | ✓ | ✓ |
| Miko_1102 | يجب ألا تحتوي طرق الاختبار على "اختبار" في أسمائهم | ✓ | ✓ |
| miko_1103 | يجب تسمية طرق تهيئة الاختبار "التحضير" | ✓ | ✓ |
| Miko_1104 | يجب تسمية طرق التنظيف "Cleanuptest" | ✓ | ✓ |
| Miko_1105 | يجب تسمية أساليب تهيئة الاختبار لمرة واحدة | ✓ | ✓ |
| Miko_1106 | يجب تسمية أساليب تنظيف الاختبار لمرة واحدة "Cleanupuptestenvironment" | ✓ | ✓ |
| miko_1107 | يجب ألا تكون طرق الاختبار في Pascal-Casing | ✓ | ✓ |
| Miko_1108 | لا تسمي المتغيرات والمعلمات والحقول والخصائص "Mock" أو "كعب" أو "وهمية" أو "شيم" | ✓ | ✓ |
| miko_1109 | أنواع بادئة قابلة للاختبار مع "قابلة للاختبار" بدلاً من استخدام لاحقة "UT" | ✓ | ✓ |
| miko_1110 | يجب أن تكون أساليب الاختبار مع المعلمات مع ذلك | ✓ | ✓ |
| miko_1111 | لا ينبغي أن تكون أساليب الاختبار بدون معلمات معلمات | ✓ | ✓ |
| miko_1112 | لا تسمي بيانات الاختبار "تعسفية" | ✓ | ✓ |
| miko_1113 | لا ينبغي تسمية طرق الاختبار وفقًا لنمط BDD | ✓ | - |
| miko_1114 | لا ينبغي تسمية طرق الاختبار "HappyPath" أو "Badpath" | ✓ | - |
| miko_1115 | يجب تسمية طرق الاختبار بطريقة بطلاقة | ✓ | ✓ |
| Miko_1200 | اسم الاستثناءات في كتل الصيد باستمرار | ✓ | ✓ |
| Miko_1201 | اسم الاستثناءات كمعلمات باستمرار | ✓ | ✓ |
| Miko_1300 | يجب تسمية المعرفات غير المهمة في عبارات Lambda "_" | ✓ | ✓ |
| Miko_1400 | يجب أن تكون أسماء مساحة الاسم في الجمع | ✓ | - |
| Miko_1401 | يجب ألا تحتوي مساحات الأسماء على أسماء اللغة الفنية | ✓ | - |
| Miko_1402 | لا ينبغي تسمية مساحات الأسماء بعد أنماط تصميم خاصة بـ WPF | ✓ | - |
| Miko_1403 | لا ينبغي تسمية مساحات الأسماء على أي من مساحات أسماء الوالدين الخاصة بهم | ✓ | - |
| Miko_1404 | يجب ألا تحتوي مساحات الأسماء على أسماء غير محددة | ✓ | - |
| Miko_1405 | يجب ألا تحتوي مساحات الأسماء على "lib" | ✓ | - |
| Miko_1406 | يجب وضع محولات القيمة في مساحة اسم "المحولات" | ✓ | - |
| miko_1407 | يجب ألا تحتوي مساحات أسماء الاختبار على "اختبار" | ✓ | - |
| miko_1408 | يجب وضع طرق التمديد في نفس مساحة الاسم مثل الأنواع الممتدة | ✓ | - |
| Miko_1409 | لا تقم ببادئة أو مساحات أسماء اللاحقة مع السطح | ✓ | - |
| بطاقة تعريف | عنوان | تمكين بشكل افتراضي | CodeFix المتاحة |
|---|---|---|---|
| Miko_2000 | يجب أن تكون الوثائق صالحة XML | ✓ | ✓ |
| Miko_2001 | يجب توثيق الأحداث بشكل صحيح | ✓ | ✓ |
| Miko_2002 | يجب توثيق EventArgs بشكل صحيح | ✓ | ✓ |
| Miko_2003 | يجب أن يكون لتوثيق معالجات الأحداث عبارة بداية افتراضية | ✓ | ✓ |
| Miko_2004 | يجب أن تتبع توثيق أسماء معالجات الأحداث .NET Framework Design Framework لمعالجات الأحداث | ✓ | ✓ |
| miko_2005 | يجب توثيق الإشارات النصية إلى EventArgs بشكل صحيح | ✓ | - |
| Miko_2006 | يجب توثيق الأحداث الموجه كما تم القيام به من قبل .NET Framework | ✓ | ✓ |
| Miko_2010 | يجب أن توثق الفصول المختومة التي يتم ختمها | ✓ | ✓ |
| Miko_2011 | لا ينبغي أن تكذب الطبقات غير المحتملة بشأن الختم | ✓ | ✓ |
| Miko_2012 | <summary> يجب أن تصف الوثائق مسؤولية النوع | ✓ | ✓ |
| Miko_2013 | <summary> يجب أن يكون لتوثيق التعدادات عبارة انطلاق افتراضية | ✓ | ✓ |
| Miko_2014 | يجب توثيق الأساليب على النحو الذي تم القيام به من قبل .NET Framework | ✓ | ✓ |
| Miko_2015 | يجب أن تستخدم الوثائق "رفع" أو "رمي" بدلاً من "النار" | ✓ | ✓ |
| Miko_2016 | يجب أن تبدأ توثيق الأساليب غير المتزامنة بعبارة محددة | ✓ | ✓ |
| Miko_2017 | يجب أن يتم توثيق خصائص التبعية على النحو الذي تم القيام به من قبل .NET Framework | ✓ | ✓ |
| Miko_2018 | يجب ألا تستخدم الوثائق المصطلحات الغامضة "فحص" أو "اختبار" | ✓ | ✓ |
| Miko_2019 | <summary> يجب أن تبدأ الوثائق بشخص واحد ثالث الفعل المفرد (على سبيل المثال "يوفر") | ✓ | - |
| Miko_2020 | يجب استخدام الوثائق الموروثة باستخدام <ويرثدوك /> علامة | ✓ | ✓ |
| Miko_2021 | يجب أن يكون لتوثيق المعلمة عبارة بداية افتراضية | ✓ | ✓ |
| Miko_2022 | يجب أن يكون لتوثيق المعلمات [OUT] عبارة بداية افتراضية | ✓ | ✓ |
| Miko_2023 | يجب أن يكون لتوثيق المعلمات المنطقية عبارة بداية افتراضية | ✓ | ✓ |
| Miko_2024 | يجب أن يكون لتوثيق معلمات التعداد عبارة بداية افتراضية | ✓ | ✓ |
| Miko_2025 | يجب أن يكون لتوثيق معلمات "cancellationToken" عبارة بداية افتراضية | ✓ | ✓ |
| Miko_2026 | لا ينبغي توثيق المعلمات المستخدمة لتكون غير مستخدمة | ✓ | - |
| Miko_2027 | يجب توثيق معلمات منشئ التسلسل بعبارة محددة | ✓ | ✓ |
| Miko_2028 | يجب ألا تحتوي وثائق المعلمة على اسم المعلمة فقط | ✓ | - |
| Miko_2029 | يجب ألا تستخدم الوثائق <RindiTdoc> "cref" لنفسها | ✓ | ✓ |
| Miko_2030 | يجب أن تحتوي وثائق قيمة الإرجاع على عبارة بداية افتراضية | ✓ | - |
| Miko_2031 | يجب أن تحتوي وثائق قيمة إرجاع المهمة على عبارة محددة (بدء) | ✓ | ✓ |
| miko_2032 | يجب أن يكون لتوثيق قيمة الإرجاع المنطقي عبارة محددة | ✓ | ✓ |
| Miko_2033 | يجب أن يكون لتوثيق قيمة إرجاع السلسلة عبارة بداية افتراضية | ✓ | ✓ |
| Miko_2034 | يجب أن يكون لتوثيق قيمة إرجاع التعداد عبارة بداية افتراضية | ✓ | ✓ |
| miko_2035 | يجب أن تحتوي وثائق قيمة إرجاع المجموعة على عبارة بداية افتراضية | ✓ | ✓ |
| Miko_2036 | يجب أن تصف توثيق خاصية Boolean أو Enum القيمة الافتراضية | ✓ | ✓ |
| Miko_2037 | <summary> يجب أن يكون لتوثيق خصائص الأوامر عبارة بداية افتراضية | ✓ | ✓ |
| miko_2038 | <summary> يجب أن يكون لتوثيق الأمر عبارة بداية افتراضية | ✓ | ✓ |
| miko_2039 | <summary> يجب أن تحتوي وثائق الفئات التي تحتوي على طرق تمديد | ✓ | ✓ |
| Miko_2040 | <انظر Langword = "..."/> يجب استخدامه بدلاً من <c> ... </c> | ✓ | ✓ |
| Miko_2041 | <summary> يجب ألا تحتوي الوثائق على علامات توثيق أخرى | ✓ | ✓ |
| Miko_2042 | يجب أن تستخدم الوثائق '<para/>' علامات xml بدلاً من '<br/>' علامات html | ✓ | ✓ |
| Miko_2043 | <summary> يجب أن يكون لتوثيق المندوبين المخصصين عبارة بداية افتراضية | ✓ | ✓ |
| Miko_2044 | معلمات طريقة مراجع الوثائق بشكل صحيح | ✓ | ✓ |
| Miko_2045 | <summary> يجب ألا تشير الوثائق إلى المعلمات | ✓ | ✓ |
| Miko_2046 | يجب أن يكون الوثائق مرجعًا معلمات النوع بشكل صحيح | ✓ | ✓ |
| Miko_2047 | <summary> يجب أن يكون لتوثيق السمات عبارة انطلاق افتراضية | ✓ | - |
| Miko_2048 | <summary> يجب أن يكون لتوثيق محولات القيمة عبارة بداية افتراضية | ✓ | ✓ |
| miko_2049 | يجب أن تكون الوثائق أكثر وضوحًا ولا تستخدم "ستكون" | ✓ | ✓ |
| Miko_2050 | يجب توثيق الاستثناءات بعد إطار .NET | ✓ | ✓ |
| Miko_2051 | يجب توثيق الاستثناءات التي تم إلقاؤها كنوع من الحالة (مثل "<paramref name =" xyz "/> IS <C> 42 </c> ') | ✓ | ✓ |
| Miko_2052 | يجب توثيق رمي presumentnullexception باستخدام عبارة افتراضية | ✓ | ✓ |
| miko_2053 | يجب توثيق رمي presumentnullexception فقط لمعلمات النوع المرجعي | ✓ | - |
| Miko_2054 | يجب توثيق رمي PresumentException باستخدام عبارة البداية الافتراضية | ✓ | ✓ |
| Miko_2055 | يجب توثيق رمي pignumentOutoFrangeException باستخدام عبارة البداية الافتراضية | ✓ | ✓ |
| Miko_2056 | يجب توثيق رمي ObjectDisposedException باستخدام عبارة النهاية الافتراضية | ✓ | ✓ |
| Miko_2057 | لا يجوز أن تكون الأنواع التي لا يمكن التخلص منها رمي ObjectDisposedException | ✓ | ✓ |
| Miko_2059 | يجب توحيد وثائق متعددة لنفس الاستثناء إلى واحد | ✓ | ✓ |
| Miko_2060 | يجب توثيق المصانع بطريقة موحدة | ✓ | ✓ |
| Miko_2070 | <summary> يجب ألا تبدأ الوثائق بـ "العائدات" | ✓ | ✓ |
| Miko_2071 | <summary> الوثائق للطرق التي لا يجب أن تحتوي أنواع التعدادات على عبارة عن نوع منطقي | ✓ | - |
| Miko_2072 | <summary> يجب ألا تبدأ الوثائق بـ "Try" | ✓ | ✓ |
| Miko_2073 | <summary> يجب أن تبدأ توثيق أساليب "يحتوي على" بـ "تحديد ما إذا" | ✓ | ✓ |
| miko_2074 | يجب أن يكون لتوثيق معلمة "يحتوي على" عبارة إنهاء افتراضي | ✓ | ✓ |
| Miko_2075 | يجب أن تستخدم الوثائق مصطلح "رد الاتصال" بدلاً من "الإجراء" أو "Func" أو "وظيفة" | ✓ | ✓ |
| Miko_2076 | يجب أن توثق القيم الافتراضية للمعلمات الاختيارية | ✓ | ✓ |
| miko_2077 | <summary> يجب ألا تحتوي الوثائق على <code> | ✓ | - |
| Miko_2078 | <code> يجب ألا تحتوي الوثائق على علامات XML | ✓ | - |
| miko_2079 | <summary> لا ينبغي أن يكون لتوثيق الخصائص نصًا واضحًا | ✓ | ✓ |
| Miko_2080 | <summary> يجب أن يكون لتوثيق الحقول عبارة انطلاق افتراضية | ✓ | ✓ |
| Miko_2081 | <summary> يجب أن يكون لتوثيق الحقول العامة للوقوف العامة عبارة عن عبارة افتراضية | ✓ | ✓ |
| Miko_2082 | <summary> يجب ألا تبدأ توثيق أعضاء التعداد بعبارات البداية الافتراضية من التعداد <summary> الوثائق | ✓ | ✓ |
| miko_2090 | يجب أن يكون للوثائق الخاصة بمشغل المساواة عبارة افتراضية | ✓ | ✓ |
| Miko_2091 | يجب أن يكون لتوثيق عامل عدم المساواة عبارة افتراضية | ✓ | ✓ |
| Miko_2100 | <example> يجب أن تبدأ الوثائق بعبارة افتراضية وصفية | ✓ | ✓ |
| Miko_2101 | <example> يجب أن تعرض الوثائق مثال رمز في علامات <code> | ✓ | ✓ |
| Miko_2200 | استخدم رسالة رسمية لبدء التعليق | ✓ | ✓ |
| Miko_2201 | استخدم رسالة رسمية لبدء الجمل في التعليق | ✓ | - |
| miko_2202 | يجب أن تستخدم الوثائق مصطلح "معرف" بدلاً من "المعرف" | ✓ | ✓ |
| Miko_2203 | يجب أن تستخدم الوثائق مصطلح "معرف فريد" بدلاً من "Guid" | ✓ | ✓ |
| Miko_2204 | يجب أن تستخدم الوثائق <list> للتعدادات | ✓ | ✓ |
| Miko_2205 | يجب أن تستخدم الوثائق <mote> للحصول على معلومات مهمة | ✓ | - |
| Miko_2206 | يجب ألا تستخدم الوثائق مصطلح "العلم" | ✓ | - |
| miko_2207 | <summary> يجب أن تكون الوثائق قصيرة | ✓ | - |
| Miko_2208 | يجب ألا تستخدم الوثائق مصطلح "مثيل" | ✓ | ✓ |
| miko_2209 | لا تستخدم فترات مزدوجة في الوثائق | ✓ | ✓ |
| Miko_2210 | يجب أن تستخدم الوثائق مصطلح "معلومات" بدلاً من "المعلومات" | ✓ | ✓ |
| miko_2211 | لا ينبغي أن يكون أعضاء التعداد <ملاحظات> أقسام | ✓ | ✓ |
| Miko_2212 | يجب أن تستخدم الوثائق عبارة "فشل" بدلاً من "لم تكن ناجحة" | ✓ | ✓ |
| Miko_2213 | يجب ألا تستخدم الوثائق الانكماش "n't" | ✓ | ✓ |
| Miko_2214 | يجب ألا تحتوي الوثائق على خطوط فارغة | ✓ | ✓ |
| Miko_2215 | يجب أن تكون الجمل في الوثائق قصيرة | ✓ | - |
| Miko_2216 | استخدم <ParamRef> بدلاً من <Param> للرجوع إلى المعلمات | ✓ | ✓ |
| Miko_2217 | <list> يتم التوثيق بشكل صحيح | ✓ | ✓ |
| Miko_2218 | يجب أن تستخدم الوثائق شروطًا أقصر بدلاً من "تستخدم/في/عن طريق" على المدى الطويل " | ✓ | ✓ |
| Miko_2219 | لا تستخدم أسئلة أو علامات استكشاف في الوثائق | ✓ | - |
| Miko_2220 | يجب أن تستخدم الوثائق "للبحث" بدلاً من "للبحث عن" أو "لتفقد" أو "لاختبار" | ✓ | ✓ |
| Miko_2221 | يجب ألا تستخدم الوثائق علامات XML فارغة | ✓ | - |
| Miko_2222 | يجب أن تستخدم الوثائق مصطلح "تحديد" بدلاً من "التعريف" | ✓ | ✓ |
| Miko_2223 | روابط الوثائق المراجع عبر <انظر cref = "..."/> | ✓ | - |
| Miko_2224 | يجب أن تحتوي الوثائق على علامات XML والنصوص الموضوعة على خطوط منفصلة | ✓ | ✓ |
| Miko_2225 | يجب وضع الكود المميز بـ <c> العلامات على سطر واحد | ✓ | ✓ |
| Miko_2226 | يجب أن تشرح الوثائق "لماذا" وليس "ذلك" | ✓ | - |
| Miko_2227 | يجب ألا تحتوي الوثائق على قمع Resharper | ✓ | - |
| Miko_2228 | يجب أن تستخدم الوثائق الصياغة الإيجابية بدلاً من السلبية | ✓ | - |
| Miko_2229 | لا ينبغي أن تحتوي الوثائق على شظايا XML أكثر | ✓ | ✓ |
| Miko_2231 | يجب استخدام وثائق طرق "gethashcode () | ✓ | ✓ |
| Miko_2232 | <summary> يجب ألا تكون الوثائق فارغة | ✓ | ✓ |
| Miko_2233 | يجب وضع علامات XML على سطر واحد | ✓ | ✓ |
| Miko_2300 | يجب أن تشرح التعليقات "لماذا" وليس "كيف" | ✓ | - |
| Miko_2301 | لا تستخدم تعليقات واضحة في اختبارات AAA | ✓ | ✓ |
| Miko_2302 | لا تحتفظ بالدولة التي يتم التعليق عليها | ✓ | - |
| Miko_2303 | لا تنهي التعليقات بفترة | ✓ | ✓ |
| miko_2304 | لا تقم بصياغة التعليقات كأسئلة | ✓ | - |
| Miko_2305 | لا تستخدم فترات مزدوجة في التعليقات | ✓ | ✓ |
| miko_2306 | نهاية التعليقات مع فترة | - | - |
| miko_2307 | يجب أن تستخدم التعليقات عبارة "فشل" بدلاً من "لم تكن ناجحة" | ✓ | ✓ |
| Miko_2308 | لا تضع التعليق على سطر واحد قبل إغلاق الدعامة ولكن بعد الكود | ✓ | ✓ |
| miko_2309 | يجب ألا تستخدم التعليقات تقلص "n't" | ✓ | ✓ |
| Miko_2310 | يجب أن تشرح التعليقات "لماذا" وليس "ذلك" | ✓ | - |
| Miko_2311 | لا تستخدم تعليقات الفاصل | ✓ | ✓ |
| بطاقة تعريف | عنوان | تمكين بشكل افتراضي | CodeFix المتاحة |
|---|---|---|---|
| Miko_3000 | لا تستخدم المناطق الفارغة | ✓ | - |
| Miko_3001 | لا ينبغي استخدام المندوبين المخصصين | ✓ | - |
| Miko_3002 | لا ينبغي أن يكون لدى الفصول الكثير من التبعيات | ✓ | - |
| miko_3003 | يجب أن تتبع الأحداث إرشادات تصميم Framework للأحداث | ✓ | - |
| miko_3004 | يجب أن يكون مستكشفات الممتلكات من EventArgs خاصة | ✓ | - |
| miko_3005 | يجب أن تتبع الأساليب المسمى "Try" النمط Trier-Doer | ✓ | - |
| Miko_3006 | يجب أن تكون المعلمة "cancellationToken" معلمة الطريقة الأخيرة | ✓ | - |
| Miko_3007 | لا تستخدم طريقة LINQ وبناء جملة الاستعلام التعريفي في نفس الطريقة | ✓ | - |
| Miko_3008 | يجب ألا تُرجع الطريقة مجموعات يمكن تغييرها من الخارج | ✓ | - |
| Miko_3009 | يجب أن تستدعي الأوامر أساليب مسماة فقط ولا تعبيرات lambda | ✓ | - |
| Miko_3010 | لا تنشئ أو ترمي أنواع الاستثناءات المحجوزة | ✓ | - |
| Miko_3011 | يجب أن توفر argumentexceptions (أو أنواعها الفرعية) اسم المعلمة الصحيح | ✓ | ✓ |
| Miko_3012 | يجب أن يوفر PrismumentOutoToFrangeExceptions (أو أنواعه الفرعية) القيمة الفعلية التي تسبب استثناء في إلقاؤها | ✓ | ✓ |
| Miko_3013 | يجب أن يرمي بند "التبديل" الافتراضي في "التبديل" (أو النوع الفرعي) ، ولكن لا يوجد argumentexception | ✓ | ✓ |
| Miko_3014 | يجب أن يكون للرسالة invalidoperationexception ، notimplementedException و NotsupportedException سببًا كرسالة | ✓ | ✓ |
| Miko_3015 | رمي غير invalidoperationExceptions (بدلاً من engumentexpections أو أنواعه الفرعية) للإشارة إلى حالات غير مناسبة للطرق غير المعلمة | ✓ | ✓ |
| Miko_3016 | لا ترمي engumentnullexception لحالات غير لائقة لقيم إرجاع الممتلكات | ✓ | ✓ |
| Miko_3017 | لا تبتلع الاستثناءات عند إلقاء استثناءات جديدة | ✓ | ✓ |
| Miko_3018 | رمي ObjectDisposedExceptions على الأساليب المرئية للجمهور لأنواع يمكن التخلص منها | ✓ | - |
| Miko_3020 | استخدم "Task.completedTask" بدلاً من "Task.fromresult" | ✓ | ✓ |
| Miko_3021 | لا تستخدم "Task.run" في التنفيذ | ✓ | - |
| Miko_3022 | لا ترجع المهمة <Ienumerable> أو المهمة <ienumerable <T >> | ✓ | - |
| Miko_3023 | لا تستخدم "cancellationTokensource" كمعلمة | ✓ | - |
| Miko_3024 | لا تستخدم الكلمة الرئيسية [Ref] على معلمات المرجع | ✓ | - |
| Miko_3025 | لا تقم بإعادة تعيين معلمات الطريقة | ✓ | - |
| Miko_3026 | يجب إزالة المعلمات غير المستخدمة | ✓ | - |
| Miko_3027 | لا ينبغي وضع علامة على المعلمات لتكون مخصصة للاستخدام في المستقبل | ✓ | - |
| Miko_3028 | لا تقم بتعيين معلمات Lambda | ✓ | - |
| Miko_3029 | يجب ألا تسبب تسجيلات الأحداث تسربًا للذاكرة | ✓ | - |
| Miko_3030 | يجب أن تتبع الأساليب قانون ديميتر | - | - |
| Miko_3031 | لا ينبغي تنفيذ iclonable.clone () | ✓ | - |
| Miko_3032 | استخدم "nameof" بدلاً من Cinch للحصول على أسماء الخصائص الخاصة بـ "PropertyChangedeventArgs" | ✓ | ✓ |
| Miko_3033 | استخدم "NameOf" لأسماء الخصائص التي تم إنشاؤها "PropertyChangingeventArgs" و "PropertyChangedeventArgs" مثيلات " | ✓ | ✓ |
| Miko_3034 | يجب أن يستخدم Raiser Event Raiser PropertyChanged [CallerMemberName] | ✓ | ✓ |
| Miko_3035 | لا تستدعي أساليب "وايتون" بدون مهلة | ✓ | - |
| Miko_3036 | تفضل استخدام أساليب مصنع "الفترة الزمنية" بدلاً من المُنشئين | ✓ | ✓ |
| Miko_3037 | لا تستخدم الأرقام السحرية للمهلات | ✓ | - |
| Miko_3038 | لا تستخدم الأرقام السحرية | ✓ | - |
| Miko_3039 | يجب ألا تستخدم الخصائص LINQ أو العائد | ✓ | - |
| Miko_3040 | لا تستخدم منطقًا إلا إذا كنت متأكدًا تمامًا من أنك لن تحتاج أبدًا إلى أكثر من قيمتين | ✓ | - |
| Miko_3041 | لا تستخدم EventArgs المندوبين | ✓ | - |
| Miko_3042 | لا يجوز EventArgs تنفيذ واجهات | ✓ | - |
| Miko_3043 | استخدم "اسم" لتسجيلات WeakeventManager (DE-) | ✓ | ✓ |
| Miko_3044 | استخدم "nameof" لمقارنة أسماء الممتلكات لـ "PropertyChangingeventArgs" و "PropertyChangedeventArgs" | ✓ | ✓ |
| Miko_3045 | استخدم "NameOF" لتسجيلات حدث EventManager | ✓ | ✓ |
| Miko_3046 | استخدم "nameof" لأسماء العقارات لطرق رفع الممتلكات | ✓ | ✓ |
| Miko_3047 | استخدم "nameof" للسمات المطبقة [contentProperty] | ✓ | ✓ |
| Miko_3048 | يجب أن يتم تطبيق سمة [valueConversion] | ✓ | - |
| Miko_3049 | يجب أن يتم تطبيق السمة [الوصف] | ✓ | - |
| Miko_3050 | يجب أن تكون حقول REPENENCYPROPERTY "ثابتة عامة" | ✓ | ✓ |
| Miko_3051 | يجب تسجيل حقول الاعتماد بشكل صحيح | ✓ | ✓ |
| Miko_3052 | يجب أن تكون حقول REPENENCEDPROPERTYKEY "ثابتة" | ✓ | ✓ |
| Miko_3053 | يجب تسجيل حقول REPENENCEDPROPERTYKEY بشكل صحيح | ✓ | - |
| Miko_3054 | يجب أن يكون للاعتماد على القراءة فقط معرف التبعية المكشوف | ✓ | ✓ |
| Miko_3055 | يجب أن تنفذ ViewModels inotifyPropertyChanged | ✓ | - |
| Miko_3060 | Debug.Assert أو Trace.Assert يجب ألا يتم استخدامه | ✓ | ✓ |
| Miko_3061 | يجب أن يستخدم Loggers فئة السجل المناسبة | ✓ | - |
| Miko_3062 | إنهاء رسائل السجل للاستثناءات مع القولون | ✓ | ✓ |
| Miko_3063 | إنهاء رسائل السجل غير المستثمرة بنقطة | ✓ | ✓ |
| Miko_3064 | يجب ألا تستخدم رسائل السجل الانكماش "n't" | ✓ | ✓ |
| miko_3065 | يجب ألا تستخدم مكالمات تسجيل Microsoft سلاسل محرف | ✓ | ✓ |
| Miko_3070 | لا تعود لاغية للاشمئزاز | ✓ | - |
| Miko_3071 | لا تعيد NULL لمهمة | ✓ | - |
| Miko_3072 | يجب ألا تُرجع الأساليب غير الخاصة "قائمة <>" أو "القاموس <>" | ✓ | - |
| Miko_3073 | لا تترك كائنات تهيئتها جزئيًا | ✓ | - |
| Miko_3074 | لا تحدد معلمات "المرجع" أو "خارج" على المُنشئين | ✓ | - |
| Miko_3075 | يجب أن تكون الأنواع الداخلية والخاصة إما ثابتة أو مختومة ما لم يلزم الاشتقاق منها | ✓ | ✓ |
| Miko_3076 | لا تهيئة عضو ثابت مع عضو ثابت أدناه أو في جزء آخر | ✓ | - |
| Miko_3077 | يجب أن يكون للخصائص التي تُرجع التعداد قيمة افتراضية | ✓ | ✓ |
| Miko_3078 | يجب أن يكون لأعضاء التعداد قيمة افتراضية | ✓ | ✓ |
| Miko_3079 | يجب أن تكتب Hresults في سداسي عشري | ✓ | ✓ |
| Miko_3080 | استخدم "التبديل ... إرجاع" بدلاً من "التبديل ... كسر" عند تعيين المتغيرات | ✓ | - |
| Miko_3081 | تفضل مطابقة النمط على حالة منطقية وليس شرط | ✓ | ✓ |
| Miko_3082 | تفضل مطابقة النمط على مقارنة منطقية مع "صواب" أو "خطأ" | ✓ | ✓ |
| Miko_3083 | تفضل مطابقة النمط للشيكات الفارغة | ✓ | ✓ |
| Miko_3084 | لا تضع الثوابت على الجانب الأيسر للمقارنات | ✓ | ✓ |
| Miko_3085 | يجب أن تكون البيانات الشرطية قصيرة | ✓ | - |
| Miko_3086 | لا تعش بيانات مشروطة | ✓ | - |
| Miko_3087 | لا تستخدم الظروف المعقدة السلبية | ✓ | - |
| Miko_3088 | تفضل مطابقة النمط للشيكات غير الفريدة | ✓ | ✓ |
| Miko_3089 | لا تستخدم أنماط الخصائص الثابتة البسيطة كشروط "إذا" | ✓ | ✓ |
| Miko_3090 | لا ترمي استثناءات في الكتل أخيرًا | ✓ | - |
| Miko_3091 | لا ترفع الأحداث في الكتل أخيرًا | ✓ | - |
| Miko_3092 | لا ترفع الأحداث في الأقفال | ✓ | - |
| Miko_3093 | لا تستدعي المندوبين داخل الأقفال | ✓ | - |
| Miko_3094 | لا تستدعي الأساليب أو خصائص المعلمات داخل الأقفال | ✓ | - |
| Miko_3095 | يجب ألا تكون كتل الكود فارغة | ✓ | - |
| miko_3096 | استخدم القواميس بدلاً من عبارات التبديل الكبيرة | ✓ | - |
| Miko_3097 | لا تلقي بكتابة الكائن وإرجاعه | ✓ | - |
| Miko_3098 | يجب أن تشرح مبررات الرسائل المكبوتة | ✓ | - |
| Miko_3099 | لا تقارن قيم التعداد مع فارغة | ✓ | ✓ |
| Miko_3100 | فئات وأنواع الاختبار قيد الاختبار تنتمي إلى نفس مساحة الاسم | ✓ | - |
| miko_3101 | يجب أن تحتوي فئات الاختبار على اختبارات | ✓ | - |
| miko_3102 | يجب ألا تحتوي طرق الاختبار على بيانات مشروطة (مثل "if" ، "التبديل" ، إلخ) | ✓ | - |
| miko_3103 | يجب ألا تستخدم طرق الاختبار "Guid.NewGuid ()" | ✓ | ✓ |
| miko_3104 | استخدم سمة Nunit [التوافقي] بشكل صحيح | ✓ | ✓ |
| Miko_3105 | يجب أن تستخدم طرق الاختبار نهج تأكيد Nunit Fluent | ✓ | ✓ |
| miko_3106 | يجب ألا تستخدم التأكيدات عوامل المساواة أو عوامل المقارنة | ✓ | - |
| Miko_3107 | يجب استخدام مطابقة حالة MOQ الوهمية على السخرية فقط | ✓ | ✓ |
| Miko_3108 | يجب أن تستخدم طرق الاختبار التأكيدات | ✓ | - |
| miko_3109 | يجب أن تستخدم التأكيدات المتعددة رسائل التأكيد | ✓ | ✓ |
| Miko_3110 | يجب ألا تستخدم التأكيدات "عدد" أو "طول" | ✓ | ✓ |
| Miko_3111 | يجب أن تستخدم التأكيدات "is.zero" بدلاً من "is.equalto (0)" | ✓ | ✓ |
| Miko_3112 | يجب أن تستخدم التأكيدات "IS.Empty" بدلاً من "has.count.zero" | ✓ | ✓ |
| Miko_3113 | لا تستخدم FluentAttions | ✓ | ✓ |
| miko_3114 | استخدم "mock.of <t> ()" بدلاً من "New Mock <T> (). Object" | ✓ | ✓ |
| Miko_3115 | يجب أن تحتوي طرق الاختبار على رمز | ✓ | - |
| Miko_3116 | يجب أن تحتوي طرق تهيئة الاختبار على رمز | ✓ | - |
| Miko_3117 | يجب أن يحتوي اختبار طرق التنظيف على رمز | ✓ | - |
| Miko_3118 | يجب ألا تستخدم طرق الاختبار مكالمات LINQ غامضة | ✓ | - |
| miko_3119 | يجب ألا تُرجع طرق الاختبار المهمة المكتملة ببساطة | ✓ | ✓ |
| Miko_3120 | يجب أن تستخدم MOCKs MOCKات القيم بدلاً من "it.is <> (...) | ✓ | ✓ |
| Miko_3121 | يجب أن تختبر الاختبارات تطبيقات ملموسة ولا واجهات | ✓ | - |
| miko_3122 | يجب ألا تستخدم طرق الاختبار أكثر من 2 معلمة | ✓ | - |
| Miko_3201 | إذا كان يمكن قلب البيانات بطرق قصيرة | ✓ | ✓ |
| miko_3202 | استخدم الظروف الإيجابية عند العودة في جميع المسارات | ✓ | ✓ |
| miko_3203 | يمكن قلب عبارات ما إذا كانت هناك خط واحد يتبعها خط واحد | ✓ | ✓ |
| miko_3204 | سلبي إذا كان من الممكن قلب البيانات عندما يكون لها شرط آخر | ✓ | ✓ |
| Miko_3210 | يجب أن تكون أطول الأحمال الزائدة فقط افتراضية أو مجردة | ✓ | - |
| miko_3211 | لا ينبغي أن تحتوي الأنواع العامة على النهائيات | ✓ | - |
| Miko_3212 | لا تخلط بين المطورين من خلال توفير طرق أخرى للتخلص منها | ✓ | - |
| Miko_3213 | طريقة التخلص من المعلمة تتبع نمط التخلص الأساسي | ✓ | - |
| Miko_3214 | لا تحتوي الواجهات على "بدء/نهاية" أو "إدخال/خروج" طرق تحديد النطاق | ✓ | - |
| Miko_3215 | يجب أن تكون عمليات الاسترجاعات هي "func <T ، Bool>" بدلاً من "المسند <Oool>" | ✓ | ✓ |
| Miko_3216 | يجب أن تكون الحقول الثابتة مع المهيئات القراءة فقط | ✓ | ✓ |
| Miko_3217 | لا تستخدم أنواعًا عامة لها أنواع عامة أخرى كوسائط نوع | ✓ | - |
| Miko_3218 | لا تحدد طرق التمديد في أماكن غير متوقعة | ✓ | - |
| Miko_3219 | لا ينبغي أن يكون الأعضاء العامون "افتراضيين" | ✓ | - |
| Miko_3220 | منطقي '&&' أو '||' يجب تبسيط الشروط التي تستخدم "صواب" أو "خطأ" | ✓ | ✓ |
| Miko_3221 | يجب أن تستخدم تجاوزات GethashCode "HashCode.combine" | ✓ | ✓ |
| Miko_3222 | يمكن تبسيط مقارنات السلسلة | ✓ | ✓ |
| Miko_3223 | يمكن تبسيط المقارنات المرجعية | ✓ | ✓ |
| Miko_3224 | يمكن تبسيط مقارنات القيمة | ✓ | ✓ |
| Miko_3225 | يمكن تبسيط مقارنات زائدة عن الحاجة | ✓ | ✓ |
| Miko_3301 | تفضل أجسام تعبير Lambda بدلاً من كتل تعبير Lambda للأقواس لبيانات واحدة | ✓ | ✓ |
| Miko_3302 | تفضيل أجسام تعبير Lambda البسيطة بدلاً من أجسام تعبير Lambda المعروضة للمعلمات الفردية | ✓ | ✓ |
| Miko_3401 | لا ينبغي أن تكون التسلسلات الهرمية لمساحة الاسم عميقة جدًا | ✓ | - |
| Miko_3501 | لا تقمع تحذيرات قابلة للإلغاء على المشغلين الفارغين | ✓ | ✓ |
| Miko_3502 | لا تقمع تحذيرات لاغية على مكالمات LINQ | ✓ | ✓ |
| بطاقة تعريف | عنوان | تمكين بشكل افتراضي | CodeFix المتاحة |
|---|---|---|---|
| Miko_4001 | يجب طلب الأساليب بنفس الاسم بناءً على عدد معلماتها | ✓ | ✓ |
| Miko_4002 | يجب وضع الأساليب بنفس الاسم وسهولة الوصول جنبًا إلى جنب | ✓ | ✓ |
| Miko_4003 | يجب وضع الأساليب مباشرة بعد البنائين والنهائيين | ✓ | ✓ |
| Miko_4004 | يجب وضع الأساليب قبل جميع الأساليب الأخرى من نفس إمكانية الوصول | ✓ | ✓ |
| Miko_4005 | يجب وضع الواجهة التي تعطي نوعًا اسمها مباشرة بعد إعلان النوع | ✓ | ✓ |
| Miko_4007 | يجب وضع المشغلين قبل الأساليب | ✓ | ✓ |
| miko_4008 | يجب وضع طرق GethashCode مباشرة بعد أساليب متساوية | ✓ | ✓ |
| Miko_4101 | يجب طلب طرق تهيئة الاختبار مباشرة بعد طرق لمرة واحدة | ✓ | ✓ |
| miko_4102 | يجب طلب طرق التنظيف الاختبار بعد طرق تهيئة الاختبار وقبل طرق الاختبار | ✓ | ✓ |
| miko_4103 | يجب طلب طرق تهيئة الاختبار لمرة واحدة قبل جميع الطرق الأخرى | ✓ | ✓ |
| Miko_4104 | يجب طلب طرق تنظيف الاختبار لمرة واحدة مباشرة بعد طرق تهيئة الاختبار لمرة واحدة | ✓ | ✓ |
| بطاقة تعريف | عنوان | تمكين بشكل افتراضي | CodeFix المتاحة |
|---|---|---|---|
| Miko_5001 | يجب استدعاء أساليب "Debug" و "Debugformat" فقط بعد "IsDebugenabled" | ✓ | ✓ |
| Miko_5002 | يجب استدعاء طرق "xxxformat" مع وسيطات متعددة فقط | ✓ | ✓ |
| miko_5003 | يجب استدعاء طرق السجل الصحيحة للاستثناءات | ✓ | - |
| Miko_5010 | لا تستخدم "Object.equals ()" على أنواع القيمة | ✓ | ✓ |
| Miko_5011 | لا تسلس السلاسل مع += المشغل | ✓ | - |
| Miko_5012 | لا تستخدم "عودة العائد" للهياكل المحددة بشكل متكرر | ✓ | - |
| Miko_5013 | لا تنشئ صفائف فارغة | ✓ | ✓ |
| Miko_5014 | لا تنشئ قوائم فارغة إذا كانت قيمة الإرجاع للقراءة فقط | ✓ | ✓ |
| Miko_5015 | لا تتدرب الحرفية | ✓ | ✓ |
| Miko_5016 | استخدم hashset للبحث في "list.removeall" | ✓ | - |
| Miko_5017 | يجب أن تكون الحقول أو المتغيرات المعينة مع حرفي السلسلة ثابتة | ✓ | ✓ |
| بطاقة تعريف | عنوان | تمكين بشكل افتراضي | CodeFix المتاحة |
|---|---|---|---|
| Miko_6001 | يجب أن تكون عبارات السجل محاطة بخطوط فارغة | ✓ | ✓ |
| Miko_6002 | يجب أن تكون بيانات التأكيد محاطة بخطوط فارغة | ✓ | ✓ |
| Miko_6003 | يجب أن تسبق البيانات المتغيرة المحلية خطوط فارغة | ✓ | ✓ |
| miko_6004 | يجب أن تسبق عبارات التخصيص المتغيرة خطوط فارغة | ✓ | ✓ |
| MiKo_6005 | Return statements should be preceded by blank lines | ✓ | ✓ |
| MiKo_6006 | Awaited statements should be surrounded by blank lines | ✓ | ✓ |
| MiKo_6007 | Test statements should be surrounded by blank lines | ✓ | ✓ |
| MiKo_6008 | Using directives should be preceded by blank lines | ✓ | ✓ |
| MiKo_6009 | Try statements should be surrounded by blank lines | ✓ | ✓ |
| MiKo_6010 | If statements should be surrounded by blank lines | ✓ | ✓ |
| MiKo_6011 | Lock statements should be surrounded by blank lines | ✓ | ✓ |
| MiKo_6012 | foreach loops should be surrounded by blank lines | ✓ | ✓ |
| MiKo_6013 | for loops should be surrounded by blank lines | ✓ | ✓ |
| MiKo_6014 | while loops should be surrounded by blank lines | ✓ | ✓ |
| MiKo_6015 | do/while loops should be surrounded by blank lines | ✓ | ✓ |
| MiKo_6016 | using statements should be surrounded by blank lines | ✓ | ✓ |
| MiKo_6017 | switch statements should be surrounded by blank lines | ✓ | ✓ |
| MiKo_6018 | break statements should be surrounded by blank lines | ✓ | ✓ |
| MiKo_6019 | continue statements should be surrounded by blank lines | ✓ | ✓ |
| MiKo_6020 | throw statements should be surrounded by blank lines | ✓ | ✓ |
| MiKo_6021 | ArgumentNullException.ThrowIfNull statements should be surrounded by blank lines | ✓ | ✓ |
| MiKo_6022 | ArgumentException.ThrowIfNullOrEmpty statements should be surrounded by blank lines | ✓ | ✓ |
| MiKo_6023 | ArgumentOutOfRangeException.ThrowIf statements should be surrounded by blank lines | ✓ | ✓ |
| MiKo_6024 | ObjectDisposedException.ThrowIf statements should be surrounded by blank lines | ✓ | ✓ |
| MiKo_6030 | Open braces of initializers should be placed directly below the corresponding type definition | ✓ | ✓ |
| MiKo_6031 | Question and colon tokens of ternary operators should be placed directly below the corresponding condition | ✓ | ✓ |
| MiKo_6032 | Multi-line parameters are positioned outdented at end of method | ✓ | ✓ |
| MiKo_6033 | Braces of blocks below case sections should be placed directly below the corresponding case keyword | ✓ | ✓ |
| MiKo_6034 | Dots should be placed on same line(s) as invoked members | ✓ | ✓ |
| MiKo_6035 | Open parenthesis should be placed on same line(s) as invoked methods | ✓ | ✓ |
| MiKo_6036 | Lambda blocks should be placed directly below the corresponding arrow(s) | ✓ | ✓ |
| MiKo_6037 | Single arguments should be placed on same line(s) as invoked methods | ✓ | ✓ |
| MiKo_6038 | Casts should be placed on same line(s) | ✓ | ✓ |
| MiKo_6039 | Return values should be placed on same line(s) as return keywords | ✓ | ✓ |
| MiKo_6040 | Consecutive invocations spaning multiple lines should be aligned by their dots | ✓ | ✓ |
| MiKo_6041 | Assignments should be placed on same line(s) | ✓ | ✓ |
| MiKo_6042 | 'new' keywords should be placed on same line(s) as the types | ✓ | ✓ |
| MiKo_6043 | Expression bodies of lambdas should be placed on same line as lambda itself when fitting | ✓ | ✓ |
| MiKo_6044 | Operators such as '&&' or '||' should be placed on same line(s) as their (right) operands | ✓ | ✓ |
| MiKo_6045 | Comparisons using operators such as '==' or '!=' should be placed on same line(s) | ✓ | ✓ |
| MiKo_6046 | Calculations using operators such as '+' or '%' should be placed on same line(s) | ✓ | ✓ |
| MiKo_6047 | Braces of switch expressions should be placed directly below the corresponding switch keyword | ✓ | ✓ |
| MiKo_6048 | Logical conditions should be placed on a single line | ✓ | ✓ |
| MiKo_6049 | Event (un-)registrations should be surrounded by blank lines | ✓ | ✓ |
| MiKo_6050 | Multi-line arguments are positioned outdented at end of method call | ✓ | ✓ |
| MiKo_6051 | Colon of constructor call shall be placed on same line as constructor call | ✓ | ✓ |
| MiKo_6052 | Colon of list of base types shall be placed on same line as first base type | ✓ | ✓ |
| MiKo_6053 | Single-line arguments shall be placed on single line | ✓ | ✓ |
| MiKo_6054 | Lambda arrows shall be placed on same line as the parameter(s) of the lambda | ✓ | ✓ |
| MiKo_6055 | Assignment statements should be surrounded by blank lines | ✓ | ✓ |
| MiKo_6056 | Brackets of collection expressions should be placed directly at the same place collection initializer braces would be positioned | ✓ | ✓ |
| MiKo_6057 | Type parameter constraint clauses should be aligned vertically | ✓ | ✓ |
| MiKo_6058 | Type parameter constraint clauses should be indented below parameter list | ✓ | ✓ |
| MiKo_6059 | Multi-line conditions are positioned outdented below associated calls | ✓ | ✓ |
| MiKo_6060 | Switch case labels should be placed on same line | ✓ | ✓ |
| MiKo_6061 | Switch expression arms should be placed on same line | ✓ | ✓ |
| MiKo_6070 | Console statements should be surrounded by blank lines | ✓ | ✓ |
| MiKo_6071 | Local using statements should be surrounded by blank lines | ✓ | ✓ |