MiKo Analyzers
1.0.0
Proporciona analizadores que se basan en la plataforma del compilador .NET (Roslyn) y se pueden usar dentro de Visual Studio 2019 (V16.11) o 2022 (V17.11).
Cómo instalar un analizador de Roslyn se describe aquí.
Las capturas de pantalla sobre cómo usar tales analizadores se pueden encontrar aquí.
Las siguientes tablas enumeran todas las 473 reglas que actualmente proporcionan el analizador.
| IDENTIFICACIÓN | Título | Habilitado por defecto | CodeFIX disponible |
|---|---|---|---|
| Miko_0001 | El método es demasiado grande | ✓ | - |
| Miko_0002 | El método es demasiado complejo | ✓ | - |
| Miko_0003 | El tipo es demasiado grande | ✓ | - |
| Miko_0004 | El método tiene demasiados parámetros | ✓ | - |
| Miko_0005 | La función local es demasiado grande | ✓ | - |
| Miko_0006 | La función local es demasiado compleja | ✓ | - |
| Miko_0007 | La función local tiene demasiados parámetros | ✓ | - |
| IDENTIFICACIÓN | Título | Habilitado por defecto | CodeFIX disponible |
|---|---|---|---|
| Miko_1000 | Los tipos de 'System.EventArgs' deben sufrirse con 'EventArgs' | ✓ | ✓ |
| Miko_1001 | Los parámetros 'System.Eventargs' deben llamarse 'E' | ✓ | ✓ |
| Miko_1002 | Los parámetros deben nombrarse de acuerdo con las pautas de diseño de .NET Framework para los manejadores de eventos | ✓ | ✓ |
| Miko_1003 | Los nombres de los métodos de manejo de eventos deben seguir las pautas de diseño de .NET Framework | ✓ | ✓ |
| Miko_1004 | Los eventos no deben contener 'evento' de término en sus nombres | ✓ | ✓ |
| Miko_1005 | Las variables 'System.Eventargs' deben nombrarse correctamente | ✓ | ✓ |
| Miko_1006 | Los eventos deben usar 'EventHandler <T>' con 'EventArgs' que llevan el nombre del evento | ✓ | - |
| Miko_1007 | Los eventos y sus tipos de 'EventArgs' correspondientes deben ubicarse en el mismo espacio de nombres | ✓ | - |
| Miko_1008 | Los parámetros deben nombrarse de acuerdo con las pautas de diseño de .NET Framework para los manipuladores de eventos DependencyProperty | ✓ | ✓ |
| Miko_1009 | Las variables 'System.EventHandler' deben nombrarse correctamente | ✓ | ✓ |
| Miko_1010 | Los métodos no deben contener 'canexecute' o 'ejecutar' en sus nombres | ✓ | ✓ |
| Miko_1011 | Los métodos no deben contener 'hacer' en sus nombres | ✓ | ✓ |
| Miko_1012 | Los métodos deben llamarse 'elevar' en lugar de 'fuego' | ✓ | ✓ |
| Miko_1013 | Los métodos no deben llamarse 'notificar' o 'onnotify' | ✓ | ✓ |
| Miko_1014 | Los métodos no deben ser nombrados con 'cheque' ambiguo | ✓ | ✓ |
| Miko_1015 | Los métodos deben nombrarse 'inicializar' en lugar de 'init' | ✓ | ✓ |
| Miko_1016 | Los métodos de fábrica deben llamarse 'Crear' | ✓ | ✓ |
| Miko_1017 | Los métodos no deben prefijarse con 'get' o 'establecer' si seguido de 'is', 'puede' o 'ha' | ✓ | ✓ |
| Miko_1018 | Los métodos no deben sufrirse con el sustantivo de un verbo | ✓ | ✓ |
| Miko_1019 | Los métodos 'claros' y 'eliminar' deben nombrarse en función de su número de parámetros | ✓ | ✓ |
| Miko_1020 | Los nombres de los tipos deben tener una longitud limitada | - | - |
| Miko_1021 | Los nombres de los métodos deben tener una longitud limitada | - | - |
| Miko_1022 | Los nombres de los parámetros deben tener una longitud limitada | - | - |
| Miko_1023 | Los nombres de campo deben tener una longitud limitada | - | - |
| Miko_1024 | Los nombres de las propiedades deben tener una longitud limitada | - | - |
| Miko_1025 | Los nombres de eventos deben tener una longitud limitada | - | - |
| Miko_1026 | Los nombres variables deben tener una longitud limitada | - | - |
| Miko_1027 | Los nombres variables en los bucles deben tener una longitud limitada | - | - |
| Miko_1028 | Los nombres de las funciones locales deben tener una longitud limitada | - | - |
| Miko_1030 | Los tipos no deben tener un marcador 'abstracto' o 'base' para indicar que son tipos de base | ✓ | ✓ |
| Miko_1031 | Los tipos de entidad no deben usar un sufijo de 'modelo' | ✓ | ✓ |
| Miko_1032 | Los métodos que tratan con entidades no deben usar un 'modelo' como marcador | ✓ | ✓ |
| Miko_1033 | Los parámetros que representan las entidades no deben usar un sufijo de 'modelo' | ✓ | ✓ |
| Miko_1034 | Los campos que representan entidades no deben usar un sufijo de 'modelo' | ✓ | ✓ |
| Miko_1035 | Las propiedades que tratan con entidades no deben usar un marcador de 'modelo' | ✓ | ✓ |
| Miko_1036 | Los eventos que tratan con entidades no deben usar un marcador de 'modelo' | ✓ | ✓ |
| Miko_1037 | Los tipos no deben sufrirse con 'tipo', 'interfaz', 'clase', 'estructura', 'registro' o 'enum' | ✓ | ✓ |
| Miko_1038 | Las clases que contienen métodos de extensión deben terminar con el mismo sufijo | ✓ | ✓ |
| Miko_1039 | El parámetro 'este' de los métodos de extensión debe tener un nombre predeterminado | ✓ | ✓ |
| Miko_1040 | Los parámetros no deben sufrirse con los detalles de implementación | ✓ | - |
| Miko_1041 | Los campos no deben sufrirse con los detalles de implementación | ✓ | - |
| Miko_1042 | Los parámetros 'cancelationToken' deben tener un nombre específico | ✓ | ✓ |
| Miko_1043 | Las variables 'cancelationToken' deben tener un nombre específico | ✓ | ✓ |
| Miko_1044 | Los comandos deben sufrirse con 'comando' | ✓ | ✓ |
| Miko_1045 | Los métodos que son invocados por comandos no deben sufijar con 'comando' | ✓ | ✓ |
| Miko_1046 | Los métodos asincrónicos deben seguir el patrón asincrónico basado en tareas (TAP) | ✓ | ✓ |
| Miko_1047 | Los métodos que no sigan el patrón asincrónico basado en tareas (TAP) no deben mentir sobre ser asíncrono | ✓ | ✓ |
| Miko_1048 | Las clases que son convertidores de valor deben terminar con un sufijo específico | ✓ | ✓ |
| Miko_1049 | No use términos de requisitos como 'deber', 'deber', 'debe' o 'necesidad' para los nombres | ✓ | ✓ |
| Miko_1050 | Los valores de retorno deben tener nombres descriptivos | ✓ | ✓ |
| Miko_1051 | No sufiezas parámetros con tipos de delegados | ✓ | ✓ |
| Miko_1052 | No sufiezas variables con tipos de delegados | ✓ | ✓ |
| Miko_1053 | No sufiezos campos con tipos de delegados | ✓ | ✓ |
| Miko_1054 | No nombres tipos de 'ayudante' o 'utilidad' | ✓ | ✓ |
| Miko_1055 | Las propiedades de dependencia deben sufrirse con 'propiedad' (como en el marco .NET) | ✓ | ✓ |
| Miko_1056 | Las propiedades de dependencia deben prefijarse con los nombres de propiedad (como en el marco .NET) | ✓ | ✓ |
| Miko_1057 | Las claves de la propiedad de dependencia deben sufrirse con 'clave' (como en el marco .NET) | ✓ | ✓ |
| Miko_1058 | Las claves de propiedad de dependencia deben estar prefijadas con los nombres de propiedad (como en el marco .NET) | ✓ | ✓ |
| Miko_1059 | No nombres tipos de tipos 'Implosation o' Implementación ' | ✓ | ✓ |
| Miko_1060 | Use '<Neridad> Notfound' en lugar de 'Get <n entity> fallido' o '<entity> falta' | ✓ | ✓ |
| Miko_1061 | El nombre del parámetro [OUT] del método 'Prueba' debe ser específico | ✓ | ✓ |
| Miko_1062 | Los métodos, propiedades o campos de 'can/ha/contienen' consistirán en solo unas pocas palabras | ✓ | - |
| Miko_1063 | No use abreviaturas en los nombres | ✓ | ✓ |
| Miko_1064 | Los nombres de los parámetros reflejan su significado y no su tipo | ✓ | - |
| Miko_1065 | Los parámetros del operador deben nombrarse de acuerdo con las pautas de diseño de .NET Framework para sobrecargas del operador | ✓ | ✓ |
| Miko_1066 | Los parámetros del constructor que se asignan a una propiedad deben llevarse a cabo después de la propiedad | ✓ | ✓ |
| Miko_1067 | Los métodos no deben contener 'realizar' en sus nombres | ✓ | ✓ |
| Miko_1068 | Los métodos de flujo de trabajo deben llamarse 'canrun' o 'ejecutar' | ✓ | - |
| Miko_1069 | Los nombres de las propiedades reflejan su significado y no su tipo | ✓ | - |
| Miko_1070 | Las variables de recolección locales deberán usar el nombre plural | ✓ | ✓ |
| Miko_1071 | Las variables booleanas locales deben nombrarse como declaraciones y no como preguntas | ✓ | - |
| Miko_1072 | Las propiedades o métodos booleanos deben nombrarse como declaraciones y no como preguntas | ✓ | - |
| Miko_1073 | Los campos booleanos deben nombrarse como declaraciones y no como preguntas | ✓ | - |
| Miko_1074 | Los objetos utilizados para bloquear deben sufrirse con 'Lock' | ✓ | - |
| Miko_1075 | Los tipos de no 'system.eventargs no deben sufrirse con' EventArgs ' | ✓ | ✓ |
| Miko_1076 | Los tipos de eventos de prisma deben sufrirse con 'evento' | ✓ | ✓ |
| Miko_1077 | Los miembros de enum no deben sufrirse con 'enum' | ✓ | ✓ |
| Miko_1078 | Los nombres de los métodos del constructor deben comenzar con 'Build' | ✓ | ✓ |
| Miko_1079 | Los repositorios no deben sufrirse con 'repositorio' | ✓ | ✓ |
| Miko_1080 | Los nombres deben contener números en lugar de su ortografía | ✓ | - |
| Miko_1081 | Los métodos no deben sufrirse con un número | ✓ | ✓ |
| Miko_1082 | Las propiedades no deben sufrirse con un número si sus tipos tienen sufijos numéricos | ✓ | ✓ |
| Miko_1083 | Los campos no deben sufijar con un número si sus tipos tienen sufijos numéricos | ✓ | ✓ |
| Miko_1084 | Las variables no deben sufrirse con un número si sus tipos tienen sufijos numéricos | ✓ | ✓ |
| Miko_1085 | Los parámetros no deben sufrirse con un número | ✓ | ✓ |
| Miko_1086 | Los métodos no deben nombrarse utilizando números como argot | ✓ | - |
| Miko_1087 | Nombre Parámetros del constructor después de sus contrapartes en la clase base | ✓ | ✓ |
| Miko_1088 | Las instancias de Singleton deben llamarse 'instancia' | ✓ | - |
| Miko_1089 | Los métodos no deben tener el prefijo con 'Get' | ✓ | ✓ |
| Miko_1090 | Los parámetros no deben sufrirse con tipos específicos | ✓ | ✓ |
| Miko_1091 | Las variables no deben sufrirse con tipos específicos | ✓ | ✓ |
| Miko_1092 | Los tipos de 'habilidad' no deben sufrirse con información redundante | ✓ | ✓ |
| Miko_1093 | No use el sufijo 'objeto' o 'estructura' | ✓ | ✓ |
| Miko_1094 | No sufiezos tipos con nombres pasivos del espacio de nombres | ✓ | - |
| Miko_1095 | No use 'eliminar' y 'eliminar' tanto en nombres como en documentación | ✓ | - |
| Miko_1096 | Los nombres deben usar 'fallido' en lugar de 'no escressful' | ✓ | - |
| Miko_1097 | Los nombres de los parámetros no deben seguir el esquema de nomenclatura para los campos | ✓ | ✓ |
| Miko_1098 | Los nombres de tipos deben reflejar las interfaz (s) comercial que implementan | ✓ | - |
| Miko_1099 | Los parámetros coincidentes en las sobrecargas del método deben tener nombres idénticos | ✓ | ✓ |
| Miko_1100 | Las clases de prueba deben comenzar con el nombre del tipo en prueba | ✓ | - |
| Miko_1101 | Las clases de prueba deben terminar con 'pruebas' | ✓ | ✓ |
| Miko_1102 | Los métodos de prueba no deben contener 'prueba' en sus nombres | ✓ | ✓ |
| Miko_1103 | Los métodos de inicialización de la prueba deben llamarse 'PrepareTest' | ✓ | ✓ |
| Miko_1104 | Los métodos de limpieza de pruebas deben llamarse 'Cleanuptest' | ✓ | ✓ |
| Miko_1105 | Los métodos de inicialización de la prueba única deben llamarse 'Preparetestenvironment' | ✓ | ✓ |
| Miko_1106 | Los métodos de limpieza de pruebas de una sola vez deben llamarse 'Cleanuptestenvironment' | ✓ | ✓ |
| Miko_1107 | Los métodos de prueba no deberían estar en la costa de Pascal | ✓ | ✓ |
| Miko_1108 | No nombres variables, parámetros, campos y propiedades 'simularse', 'stub', 'falso' o 'cuña' | ✓ | ✓ |
| Miko_1109 | Prefijo tipos probables con 'probable' en lugar de usar el sufijo 'UT' | ✓ | ✓ |
| Miko_1110 | Los métodos de prueba con parámetros deben sufijar con un bajo | ✓ | ✓ |
| Miko_1111 | Los métodos de prueba sin parámetros no deben sufrirse con un bajo | ✓ | ✓ |
| Miko_1112 | No nombre los datos de prueba 'arbitrarios' | ✓ | ✓ |
| Miko_1113 | Los métodos de prueba no deben nombrarse de acuerdo con el estilo BDD | ✓ | - |
| Miko_1114 | Los métodos de prueba no deben llamarse 'happypath' o 'Badpath' | ✓ | - |
| Miko_1115 | Los métodos de prueba deben nombrarse de manera fluida | ✓ | ✓ |
| Miko_1200 | Excepciones de nombre en bloques de captura de manera consistente | ✓ | ✓ |
| Miko_1201 | El nombre de las excepciones como parámetros consistentemente | ✓ | ✓ |
| Miko_1300 | Los identificadores sin importancia en las declaraciones de Lambda deben llamarse '_' | ✓ | ✓ |
| Miko_1400 | Los nombres del espacio de nombres deben estar en plural | ✓ | - |
| Miko_1401 | Los espacios de nombres no deben contener nombres de lenguaje técnico | ✓ | - |
| Miko_1402 | Los espacios de nombres no deben llevarse el nombre de los patrones de diseño específicos de WPF | ✓ | - |
| Miko_1403 | Los espacios de nombres no deben llevarse el nombre de ninguno de sus espacios de nombres para padres | ✓ | - |
| Miko_1404 | Los espacios de nombres no deben contener nombres inespecíficos | ✓ | - |
| Miko_1405 | Los espacios de nombres no deben contener 'lib' | ✓ | - |
| Miko_1406 | Los convertidores de valor deben colocarse en el espacio de nombres de 'convertidores' | ✓ | - |
| Miko_1407 | Los espacios de nombres de prueba no deben contener 'prueba' | ✓ | - |
| Miko_1408 | Los métodos de extensión deben colocarse en el mismo espacio de nombres que los tipos extendidos | ✓ | - |
| Miko_1409 | No prefije ni sufrojes espacios de nombres con subrayadores | ✓ | - |
| IDENTIFICACIÓN | Título | Habilitado por defecto | CodeFIX disponible |
|---|---|---|---|
| Miko_2000 | La documentación debe ser válida XML | ✓ | ✓ |
| Miko_2001 | Los eventos deben documentarse correctamente | ✓ | ✓ |
| Miko_2002 | EventArgs debe documentarse correctamente | ✓ | ✓ |
| Miko_2003 | La documentación de los controladores de eventos debe tener una frase inicial predeterminada | ✓ | ✓ |
| Miko_2004 | La documentación de los nombres de los parámetros del controlador de eventos debe seguir las pautas de diseño de .NET Framework para los controladores de eventos | ✓ | ✓ |
| Miko_2005 | Las referencias textuales a EventArgs deben documentarse correctamente | ✓ | - |
| Miko_2006 | Los eventos enrutados deben documentarse según lo realizado por .NET Framework | ✓ | ✓ |
| Miko_2010 | Las clases selladas deben documentar que se sellen | ✓ | ✓ |
| Miko_2011 | Las clases sin sellar no deben mentir sobre el sellado | ✓ | ✓ |
| Miko_2012 | <summary> La documentación debe describir la responsabilidad del tipo | ✓ | ✓ |
| Miko_2013 | <summary> La documentación de Enums debe tener una frase inicial predeterminada | ✓ | ✓ |
| Miko_2014 | Los métodos de eliminación deben documentarse según lo realizado por .NET Framework | ✓ | ✓ |
| Miko_2015 | La documentación debe usar 'elevar' o 'tirar' en lugar de 'fuego' | ✓ | ✓ |
| Miko_2016 | La documentación para los métodos asincrónicos debe comenzar con una frase específica | ✓ | ✓ |
| Miko_2017 | Las propiedades de dependencia deben documentarse según lo realizado por .NET Framework | ✓ | ✓ |
| Miko_2018 | La documentación no debe usar los términos ambiguos 'verificar' o 'prueba' | ✓ | ✓ |
| Miko_2019 | <summary> La documentación debe comenzar con un verbo singular de tercera persona (por ejemplo, "proporciona") | ✓ | - |
| Miko_2020 | La documentación hereditaria debe usarse con <HeritDoc /> Marker | ✓ | ✓ |
| Miko_2021 | La documentación del parámetro debe tener una frase inicial predeterminada | ✓ | ✓ |
| Miko_2022 | La documentación de los parámetros [Out] debe tener una frase inicial predeterminada | ✓ | ✓ |
| Miko_2023 | La documentación de los parámetros booleanos debe tener una frase inicial predeterminada | ✓ | ✓ |
| Miko_2024 | La documentación de los parámetros enum debe tener una frase inicial predeterminada | ✓ | ✓ |
| Miko_2025 | La documentación de los parámetros 'cancelationToken' debe tener una frase inicial predeterminada | ✓ | ✓ |
| Miko_2026 | Los parámetros usados no deben documentarse para no ser utilizados | ✓ | - |
| Miko_2027 | Los parámetros del constructor de serialización se documentarán con una frase específica | ✓ | ✓ |
| Miko_2028 | La documentación del parámetro no solo debe contener el nombre del parámetro | ✓ | - |
| Miko_2029 | <SheritDoc> La documentación no debe usarse un 'cref' para sí mismo | ✓ | ✓ |
| Miko_2030 | La documentación del valor de retorno debe tener una frase inicial predeterminada | ✓ | - |
| Miko_2031 | La documentación del valor de retorno de la tarea debe tener una frase específica (inicial) | ✓ | ✓ |
| Miko_2032 | La documentación del valor de retorno booleano debe tener una frase específica | ✓ | ✓ |
| Miko_2033 | La documentación del valor de retorno de cadena debe tener una frase inicial predeterminada | ✓ | ✓ |
| Miko_2034 | La documentación del valor de retorno de ENUM debe tener una frase inicial predeterminada | ✓ | ✓ |
| Miko_2035 | La documentación del valor de retorno de la colección debe tener una frase inicial predeterminada | ✓ | ✓ |
| Miko_2036 | La documentación de la propiedad booleana o enum debe describir el valor predeterminado | ✓ | ✓ |
| Miko_2037 | <summary> La documentación de las propiedades del comando debe tener una frase inicial predeterminada | ✓ | ✓ |
| Miko_2038 | <summary> La documentación del comando debe tener una frase inicial predeterminada | ✓ | ✓ |
| Miko_2039 | <summary> La documentación de las clases que contienen métodos de extensión debe tener una frase inicial predeterminada | ✓ | ✓ |
| Miko_2040 | <Ver langword = "..."/> debe usarse en lugar de <c> ... </c> | ✓ | ✓ |
| Miko_2041 | <summary> La documentación no debe contener otras etiquetas de documentación | ✓ | ✓ |
| Miko_2042 | La documentación debe usar las etiquetas '<par/>' xml en lugar de '<br/>' html etiquetas | ✓ | ✓ |
| Miko_2043 | <summary> La documentación de delegados personalizados debe tener una frase inicial predeterminada | ✓ | ✓ |
| Miko_2044 | Parámetros del método de referencias de documentación correctamente | ✓ | ✓ |
| Miko_2045 | <summary> La documentación no debe referencia a los parámetros | ✓ | ✓ |
| Miko_2046 | La documentación debe ser parámetros de tipo de referencia correctamente | ✓ | ✓ |
| Miko_2047 | <summary> La documentación de los atributos debe tener una frase inicial predeterminada | ✓ | - |
| Miko_2048 | <summary> La documentación de los convertidores de valor debe tener una frase inicial predeterminada | ✓ | ✓ |
| Miko_2049 | La documentación debe ser más explícita y no usar 'será' | ✓ | ✓ |
| Miko_2050 | Las excepciones deben documentarse siguiendo el marco .NET | ✓ | ✓ |
| Miko_2051 | Las excepciones lanzadas deben documentarse como una especie de condición (como '<paramref name = "xyz"/> is <c> 42 </c>') | ✓ | ✓ |
| Miko_2052 | El lanzamiento de argumento de la reunión debe documentarse utilizando una frase predeterminada | ✓ | ✓ |
| Miko_2053 | El lanzamiento de argumento de la concepción debe documentarse solo para parámetros de tipo de referencia | ✓ | - |
| Miko_2054 | El lanzamiento de ArgumentException debe documentarse utilizando una frase inicial predeterminada | ✓ | ✓ |
| Miko_2055 | El lanzamiento de argumentogoFrangeException debe documentarse utilizando una frase inicial predeterminada | ✓ | ✓ |
| Miko_2056 | El lanzamiento de ObjectDisposeException debe documentarse utilizando una frase final predeterminada | ✓ | ✓ |
| Miko_2057 | Los tipos que no son desechables no deberán arrojar un objeto DiscosseException | ✓ | ✓ |
| Miko_2059 | La documentación múltiple de la misma excepción debe consolidarse en uno | ✓ | ✓ |
| Miko_2060 | Las fábricas deben documentarse de manera uniforme | ✓ | ✓ |
| Miko_2070 | <summary> La documentación no debe comenzar con 'devoluciones' | ✓ | ✓ |
| Miko_2071 | <summary> La documentación para los métodos que devuelven los tipos de enumes no deben contener frase para el tipo booleano | ✓ | - |
| Miko_2072 | <summary> La documentación no debe comenzar con 'Prueba' | ✓ | ✓ |
| Miko_2073 | <summary> La documentación de los métodos 'contiene' debería comenzar con 'determinar si' | ✓ | ✓ |
| Miko_2074 | La documentación del parámetro del método 'contiene' debe tener una frase final predeterminada | ✓ | ✓ |
| Miko_2075 | La documentación debe usar el término 'devolución de llamada' en lugar de 'acción', 'func' o 'función' | ✓ | ✓ |
| Miko_2076 | La documentación debe documentar los valores predeterminados de los parámetros opcionales | ✓ | ✓ |
| Miko_2077 | <summary> La documentación no debe contener <código> | ✓ | - |
| Miko_2078 | <código> La documentación no debe contener etiquetas XML | ✓ | - |
| Miko_2079 | <summary> La documentación de las propiedades no debe tener texto obvio | ✓ | ✓ |
| Miko_2080 | <summary> La documentación de los campos debe tener una frase inicial predeterminada | ✓ | ✓ |
| Miko_2081 | <summary> La documentación de los campos de solo lectura público visible debe tener una frase final predeterminada | ✓ | ✓ |
| Miko_2082 | <summary> La documentación de los miembros de ENUM no debe comenzar con frases iniciales predeterminadas de Enum <summary> Documentación | ✓ | ✓ |
| Miko_2090 | La documentación para el operador de igualdad tendrá una frase predeterminada | ✓ | ✓ |
| Miko_2091 | La documentación para el operador de desigualdad tendrá una frase predeterminada | ✓ | ✓ |
| Miko_2100 | <cemplo> La documentación debe comenzar con una frase predeterminada descriptiva | ✓ | ✓ |
| Miko_2101 | <cector> La documentación debe mostrar el ejemplo de código en <code> etiquetas | ✓ | ✓ |
| Miko_2200 | Use una carta capitalizada para comenzar el comentario | ✓ | ✓ |
| Miko_2201 | Use una carta capitalizada para comenzar las oraciones en el comentario | ✓ | - |
| Miko_2202 | La documentación debe usar el término 'identificador' en lugar de 'id' | ✓ | ✓ |
| Miko_2203 | La documentación debe usar el término 'identificador único' en lugar de 'GUID' | ✓ | ✓ |
| Miko_2204 | La documentación debe usar <Indist> para enumeraciones | ✓ | ✓ |
| Miko_2205 | La documentación debe usar <nota> para obtener información importante | ✓ | - |
| Miko_2206 | La documentación no debe usar el término 'bandera' | ✓ | - |
| Miko_2207 | <summary> La documentación será corta | ✓ | - |
| Miko_2208 | La documentación no debe usar el término 'una instancia de' | ✓ | ✓ |
| Miko_2209 | No use períodos dobles en la documentación | ✓ | ✓ |
| Miko_2210 | La documentación debe usar el término 'información' en lugar de 'información' | ✓ | ✓ |
| Miko_2211 | Los miembros de ENUM no deberían tener secciones <SVELARS> | ✓ | ✓ |
| Miko_2212 | La documentación debe usar la frase 'fallida' en lugar de 'no fue exitosa' | ✓ | ✓ |
| Miko_2213 | La documentación no debe usar la contracción "N''t" | ✓ | ✓ |
| Miko_2214 | La documentación no debe contener líneas vacías | ✓ | ✓ |
| Miko_2215 | Las oraciones en la documentación serán cortas | ✓ | - |
| Miko_2216 | Use <amamref> en lugar de <amamr> para referencia a los parámetros | ✓ | ✓ |
| Miko_2217 | <list> La documentación se realiza correctamente | ✓ | ✓ |
| Miko_2218 | La documentación debe usar términos más cortos en lugar de a largo plazo 'utilizado a/in/por' | ✓ | ✓ |
| Miko_2219 | No use preguntas de preguntas o explicaciones en la documentación | ✓ | - |
| Miko_2220 | La documentación debe usar 'para buscar' en lugar de 'buscar', 'inspeccionar' o 'probar' | ✓ | ✓ |
| Miko_2221 | La documentación no debe usar etiquetas XML vacías | ✓ | - |
| Miko_2222 | La documentación debe usar el término 'identificación' en lugar de 'identificar' | ✓ | ✓ |
| Miko_2223 | Enlace de documentación Referencias a través de <ver cref = "..."/> | ✓ | - |
| Miko_2224 | La documentación debe tener etiquetas XML y textos colocados en líneas separadas | ✓ | ✓ |
| Miko_2225 | El código marcado con las etiquetas <c> debe colocarse en una sola línea | ✓ | ✓ |
| Miko_2226 | La documentación debe explicar el 'por qué' y no el 'que' | ✓ | - |
| Miko_2227 | La documentación no debe contener supresiones Resharper | ✓ | - |
| Miko_2228 | La documentación debe usar una redacción positiva en lugar de negativa | ✓ | - |
| Miko_2229 | La documentación no debe contener fragmentos XML sobrantes | ✓ | ✓ |
| Miko_2231 | Documentación de los métodos anulados 'gethashcode ()' 'utilizarán' marcador de <sheritdoc /> ' | ✓ | ✓ |
| Miko_2232 | <summary> La documentación no debe estar vacía | ✓ | ✓ |
| Miko_2233 | Las etiquetas XML deben colocarse en una sola línea | ✓ | ✓ |
| Miko_2300 | Los comentarios deberían explicar el 'por qué' y no el 'cómo' | ✓ | - |
| Miko_2301 | No use comentarios obvios en las pruebas AAA | ✓ | ✓ |
| Miko_2302 | No guarde el código que se comenta fuera | ✓ | - |
| Miko_2303 | No termine los comentarios con un período | ✓ | ✓ |
| Miko_2304 | No formule comentarios como preguntas | ✓ | - |
| Miko_2305 | No use períodos dobles en comentarios | ✓ | ✓ |
| Miko_2306 | Finalizar comentarios con un período | - | - |
| Miko_2307 | Los comentarios deben usar la frase 'fallido' en lugar de 'no fue exitoso' | ✓ | ✓ |
| Miko_2308 | No coloque el comentario en una sola línea antes de cerrar Brace, pero después del código | ✓ | ✓ |
| Miko_2309 | Los comentarios no deben usar la contracción "no" | ✓ | ✓ |
| Miko_2310 | Los comentarios deberían explicar el 'por qué' y no el 'que' | ✓ | - |
| Miko_2311 | No use comentarios de separador | ✓ | ✓ |
| IDENTIFICACIÓN | Título | Habilitado por defecto | CodeFIX disponible |
|---|---|---|---|
| Miko_3000 | No use regiones vacías | ✓ | - |
| Miko_3001 | Los delegados personalizados no deben usarse | ✓ | - |
| Miko_3002 | Las clases no deben tener demasiadas dependencias | ✓ | - |
| Miko_3003 | Los eventos deben seguir las pautas de diseño de .NET Framework para eventos | ✓ | - |
| Miko_3004 | Los establecedores de propiedades de EventArgs serán privados | ✓ | - |
| Miko_3005 | Los métodos llamados 'Prueba' deben seguir el patrón de trier-doer | ✓ | - |
| Miko_3006 | El parámetro 'cancelationToken' debe ser el último parámetro de método | ✓ | - |
| Miko_3007 | No use el método LINQ y la sintaxis de consulta declarativa en el mismo método | ✓ | - |
| Miko_3008 | El método no debe devolver las colecciones que se pueden cambiar desde el exterior | ✓ | - |
| Miko_3009 | Los comandos deben invocar solo métodos con nombre y sin expresiones lambda | ✓ | - |
| Miko_3010 | No cree ni arroje tipos de excepción reservados | ✓ | - |
| Miko_3011 | Argumentos de argumento de lanza (o sus subtipos) deberá proporcionar el nombre correcto del parámetro | ✓ | ✓ |
| Miko_3012 | Argumentado argumentado en rangoExcepciones (o sus subtipos) proporcionará el valor real que hace que se lance la excepción | ✓ | ✓ |
| Miko_3013 | La cláusula 'predeterminada' en las declaraciones 'Switch' debería lanzar un argumentougoFrangeException (o subtipo), pero no hay ArgumentException | ✓ | ✓ |
| Miko_3014 | InvalioperationException, NotisplementedException y NotSupportedException deberían tener una razón como mensaje | ✓ | ✓ |
| Miko_3015 | Agregue la invalidioperationExcepciones (en lugar de argumentos de recepción o sus subtipos) para indicar estados inapropiados de métodos sin parámetros | ✓ | ✓ |
| Miko_3016 | No arroje argumento de los valores de devolución de estados inapropiados de estados de propiedad | ✓ | ✓ |
| Miko_3017 | No traga excepciones al lanzar nuevas excepciones | ✓ | ✓ |
| Miko_3018 | Lanzar objeto Dispuestoxcepciones sobre métodos públicos visibles de tipos desechables | ✓ | - |
| Miko_3020 | Use 'Task.CompletedTask' en lugar de 'Task.FromResult' | ✓ | ✓ |
| Miko_3021 | No use 'task.run' en la implementación | ✓ | - |
| Miko_3022 | No devuelva la tarea <Eenumerable> o la tarea <IEnumerable <T>> | ✓ | - |
| Miko_3023 | No use 'cancelationTokenSource' como parámetro | ✓ | - |
| Miko_3024 | No use la palabra clave [ref] en los parámetros de referencia | ✓ | - |
| Miko_3025 | No reasignar parámetros del método | ✓ | - |
| Miko_3026 | Se deben eliminar los parámetros no utilizados | ✓ | - |
| Miko_3027 | Los parámetros no deben estar marcados para estar reservados para un uso futuro | ✓ | - |
| Miko_3028 | No asigne los parámetros NULL a Lambda | ✓ | - |
| Miko_3029 | Los registros de eventos no deben causar fugas de memoria | ✓ | - |
| Miko_3030 | Los métodos deben seguir la ley de Demeter | - | - |
| Miko_3031 | Iclonable.clone () no debe implementarse | ✓ | - |
| Miko_3032 | Use 'NameOf' en lugar de CINCH para nombres de propiedades para instancias creadas 'PropertyChangedEventargs' | ✓ | ✓ |
| Miko_3033 | Use 'NameOf' para nombres de propiedades para instancias creadas 'PropertyChangeNingEventargs' y 'PropertyChangeDEVENTARGS' | ✓ | ✓ |
| Miko_3034 | PropertyChanged Event Raiser utilizará el atributo [callermemberName] | ✓ | ✓ |
| Miko_3035 | No invoque los métodos de 'Waitone' sin tiempos de espera | ✓ | - |
| Miko_3036 | Prefiere usar métodos de fábrica 'Pan' en lugar de constructores | ✓ | ✓ |
| Miko_3037 | No use números mágicos para tiempos de espera | ✓ | - |
| Miko_3038 | No use números mágicos | ✓ | - |
| Miko_3039 | Las propiedades no deben usar Linq o rendimiento | ✓ | - |
| Miko_3040 | No use booleanos a menos que esté absolutamente seguro de que nunca necesitará más de 2 valores | ✓ | - |
| Miko_3041 | EventArgs no usará delegados | ✓ | - |
| Miko_3042 | EventArgs no implementará interfaces | ✓ | - |
| Miko_3043 | Use 'NameOf' para los registros del evento WeaKeVentManager (DE-) | ✓ | ✓ |
| Miko_3044 | Use 'NameOf' para comparar los nombres de propiedad de 'PropertyChangeReVentargs' y 'PropertyChangedEventArgs' | ✓ | ✓ |
| Miko_3045 | Use 'NameOf' para los registros de eventos de eventManager | ✓ | ✓ |
| Miko_3046 | Use 'NameOf' para los nombres de propiedades de los métodos de elevación de propiedades | ✓ | ✓ |
| Miko_3047 | Use 'nameOf' para atributos aplicados [contentProperty] | ✓ | ✓ |
| Miko_3048 | ValueConverters tendrá el atributo [ValueConversion] aplicado | ✓ | - |
| Miko_3049 | Los miembros de ENUM tendrán el atributo [Descripción] aplicado | ✓ | - |
| Miko_3050 | DependencyProperty Fields debe ser 'Pública estática Readonly' | ✓ | ✓ |
| Miko_3051 | DependencyProperty Fields debe registrarse correctamente | ✓ | ✓ |
| Miko_3052 | DependencyPropertyKey Fields no debe ser público 'estático Readonly' | ✓ | ✓ |
| Miko_3053 | Dependencypropertykey Los campos deben registrarse correctamente | ✓ | - |
| Miko_3054 | Una propiedad de dependencia de solo lectura debe tener un identificador de dependencia de dependencia expuesto | ✓ | ✓ |
| Miko_3055 | ViewModels debe implementar inotifypropertychanged | ✓ | - |
| Miko_3060 | Debug.assert o trace.assert no se utilizará | ✓ | ✓ |
| Miko_3061 | Los registradores deberán utilizar una categoría de registro adecuada | ✓ | - |
| Miko_3062 | Finalizar mensajes de registro para excepciones con un colon | ✓ | ✓ |
| Miko_3063 | Finalizar mensajes de registro no existentes con un punto | ✓ | ✓ |
| Miko_3064 | Los mensajes de registro no deben usar la contracción "n't" | ✓ | ✓ |
| Miko_3065 | Las llamadas de registro de Microsoft no deben usar cadenas interpoladas | ✓ | ✓ |
| Miko_3070 | No vuelvas nulo para un Ienumerable | ✓ | - |
| Miko_3071 | No devuelva nulo para una tarea | ✓ | - |
| Miko_3072 | Los métodos no privados no deben devolver 'List <>' o 'Dictionary <>' | ✓ | - |
| Miko_3073 | No deje objetos parcialmente inicializados | ✓ | - |
| Miko_3074 | No defina los parámetros 'Ref' o 'Out' en los constructores | ✓ | - |
| Miko_3075 | Los tipos internos y privados deben ser estáticos o sellados a menos que se requiera una derivación de ellos | ✓ | ✓ |
| Miko_3076 | No inicialice el miembro estático con el miembro estático a continuación o en otro tipo de parte | ✓ | - |
| Miko_3077 | Las propiedades que devuelven un enum deben tener un valor predeterminado | ✓ | ✓ |
| Miko_3078 | Los miembros de ENUM deben tener un valor predeterminado | ✓ | ✓ |
| Miko_3079 | Hresults debe escribirse en hexadecimal | ✓ | ✓ |
| Miko_3080 | Use 'Switch ... Return' en lugar de 'Switch ... Break' al asignar variables | ✓ | - |
| Miko_3081 | Prefiere la coincidencia de patrones sobre una condición lógica no | ✓ | ✓ |
| Miko_3082 | Prefiere la coincidencia de patrones en una comparación lógica con 'verdadero' o 'falso' | ✓ | ✓ |
| Miko_3083 | Prefiere la coincidencia de patrones para cheques nulos | ✓ | ✓ |
| Miko_3084 | No coloque constantes en el lado izquierdo para comparaciones | ✓ | ✓ |
| Miko_3085 | Las declaraciones condicionales deben ser cortas | ✓ | - |
| Miko_3086 | No aniden declaraciones condicionales | ✓ | - |
| Miko_3087 | No use condiciones complejas negativas | ✓ | - |
| Miko_3088 | Prefiere la coincidencia de patrones para cheques no nulos | ✓ | ✓ |
| Miko_3089 | No use patrones de propiedad constantes simples como condiciones de las declaraciones 'si' | ✓ | ✓ |
| Miko_3090 | No arroje excepciones en los bloques finalmente | ✓ | - |
| Miko_3091 | No plantee eventos en bloqueos finalmente | ✓ | - |
| Miko_3092 | No plantees eventos en cerraduras | ✓ | - |
| Miko_3093 | No invoque delegados dentro de las cerraduras | ✓ | - |
| Miko_3094 | No invoque métodos o propiedades de los parámetros dentro de las cerraduras | ✓ | - |
| Miko_3095 | Los bloques de código no deben estar vacíos | ✓ | - |
| Miko_3096 | Use diccionarios en lugar de declaraciones de interruptor grande | ✓ | - |
| Miko_3097 | No lanza para escribir y devolver objeto | ✓ | - |
| Miko_3098 | Las justificaciones de los mensajes suprimidos explicarán | ✓ | - |
| Miko_3099 | No compare los valores de enum con nulo | ✓ | ✓ |
| Miko_3100 | Las clases de prueba y los tipos bajo prueba pertenecen al mismo espacio de nombres | ✓ | - |
| Miko_3101 | Las clases de prueba deben contener pruebas | ✓ | - |
| Miko_3102 | Los métodos de prueba no deben contener declaraciones condicionales (como 'si', 'cambiar', etc.) | ✓ | - |
| Miko_3103 | Los métodos de prueba no deben usar 'Guid.newGuid ()' | ✓ | ✓ |
| Miko_3104 | Use el atributo [combinatorial] de NUNIT correctamente | ✓ | ✓ |
| Miko_3105 | Los métodos de prueba deben usar el enfoque de afirmación fluida de Nunit | ✓ | ✓ |
| Miko_3106 | Las afirmaciones no deben usar operadores de igualdad o comparación | ✓ | - |
| Miko_3107 | Los combaters de condición simulada de MOQ solo deben usarse en simulacros | ✓ | ✓ |
| Miko_3108 | Los métodos de prueba deben usar afirmaciones | ✓ | - |
| Miko_3109 | Múltiples afirmaciones deberán utilizar mensajes de afirmación | ✓ | ✓ |
| Miko_3110 | Las afirmaciones no deben usar 'recuento' o 'longitud' | ✓ | ✓ |
| Miko_3111 | Las afirmaciones deben usar 'IS.Zero' en lugar de 'IS.Equalto (0)' | ✓ | ✓ |
| Miko_3112 | Las afirmaciones deben usar 'is.empty' en lugar de 'ha.count.zero' | ✓ | ✓ |
| Miko_3113 | No use fluentAspertions | ✓ | ✓ |
| Miko_3114 | Use 'Mock.of <T> ()' en lugar de 'nuevo Mock <T> (). Object' | ✓ | ✓ |
| Miko_3115 | Los métodos de prueba deben contener código | ✓ | - |
| Miko_3116 | Los métodos de inicialización de prueba deben contener código | ✓ | - |
| Miko_3117 | Los métodos de limpieza de pruebas deben contener código | ✓ | - |
| Miko_3118 | Los métodos de prueba no deben usar llamadas de Linq ambiguas | ✓ | - |
| Miko_3119 | Los métodos de prueba no deben simplemente devolver la tarea completa | ✓ | ✓ |
| Miko_3120 | Las simulacros de MOQ deben usar valores en lugar de 'it.is <> (...)' Condición Marring para verificar los valores exactos | ✓ | ✓ |
| Miko_3121 | Las pruebas deben probar implementaciones concretas y sin interfaces | ✓ | - |
| Miko_3122 | Los métodos de prueba no deben usar más de 2 parámetros | ✓ | - |
| Miko_3201 | Si las declaraciones se pueden invertir en métodos cortos | ✓ | ✓ |
| Miko_3202 | Use condiciones positivas al regresar en todas las rutas | ✓ | ✓ |
| Miko_3203 | Las declaraciones de contingo IF se pueden invertir cuando se siguen una sola línea | ✓ | ✓ |
| Miko_3204 | Negativo si las declaraciones se pueden invertir cuando tienen una cláusula más | ✓ | ✓ |
| Miko_3210 | Solo las sobrecargas más largas deben ser virtuales o abstractas | ✓ | - |
| Miko_3211 | Los tipos públicos no deben tener finalizadores | ✓ | - |
| Miko_3212 | No confunda a los desarrolladores proporcionando otros métodos de eliminación | ✓ | - |
| Miko_3213 | El método de disposición sin parámetros sigue el patrón básico de eliminación | ✓ | - |
| Miko_3214 | Las interfaces no contienen métodos de definición de alcance 'Begin/End' o 'Enter/Exit' | ✓ | - |
| Miko_3215 | Las devoluciones de llamada deben ser 'func <t, bool>' en lugar de 'predicado <bool>' | ✓ | ✓ |
| Miko_3216 | Los campos estáticos con inicializadores deben ser de solo lectura | ✓ | ✓ |
| Miko_3217 | No use tipos genéricos que tengan otros tipos genéricos como argumentos de tipo | ✓ | - |
| Miko_3218 | No defina métodos de extensión en lugares inesperados | ✓ | - |
| Miko_3219 | Los miembros públicos no deben ser 'virtuales' | ✓ | - |
| Miko_3220 | Lógico '&&' o '||' Las condiciones que usan 'verdadero' o 'falso' deben simplificarse | ✓ | ✓ |
| Miko_3221 | Las anulaciones de GethashCode deben usar 'hashcode.combine' | ✓ | ✓ |
| Miko_3222 | Las comparaciones de cadenas se pueden simplificar | ✓ | ✓ |
| Miko_3223 | Las comparaciones de referencia se pueden simplificar | ✓ | ✓ |
| Miko_3224 | Las comparaciones de valor se pueden simplificar | ✓ | ✓ |
| Miko_3225 | Las comparaciones redundantes se pueden simplificar | ✓ | ✓ |
| Miko_3301 | Favorecer los cuerpos de expresión de lambda en lugar de bloques de expresión lambda paréntesis para declaraciones individuales | ✓ | ✓ |
| Miko_3302 | Favorecer los cuerpos de expresión lambda simples en lugar de los cuerpos de expresión lambda paréntesis para parámetros individuales | ✓ | ✓ |
| Miko_3401 | Las jerarquías del espacio de nombres no deben ser demasiado profundas | ✓ | - |
| Miko_3501 | No suprima advertencias anulables en operadores nulo condicionales | ✓ | ✓ |
| Miko_3502 | No suprima las advertencias anulables en las llamadas de Linq | ✓ | ✓ |
| IDENTIFICACIÓN | Título | Habilitado por defecto | CodeFIX disponible |
|---|---|---|---|
| Miko_4001 | Los métodos con el mismo nombre deben ordenarse en función del número de sus parámetros | ✓ | ✓ |
| Miko_4002 | Los métodos con el mismo nombre y accesibilidad deben colocarse uno al lado del otro. | ✓ | ✓ |
| Miko_4003 | Los métodos de eliminación deben colocarse directamente después de los constructores y finalizadores | ✓ | ✓ |
| Miko_4004 | Los métodos de eliminación deben colocarse antes de todos los demás métodos de la misma accesibilidad | ✓ | ✓ |
| Miko_4005 | La interfaz que le da a un tipo, su nombre debe colocarse directamente después de la declaración del tipo | ✓ | ✓ |
| Miko_4007 | Los operadores deben colocarse antes de los métodos | ✓ | ✓ |
| Miko_4008 | Los métodos de GethashCode deben colocarse directamente después de los métodos iguales | ✓ | ✓ |
| Miko_4101 | Los métodos de inicialización de la prueba deben ordenarse directamente después de los métodos únicos | ✓ | ✓ |
| Miko_4102 | Los métodos de limpieza de pruebas deben ordenarse después de los métodos de inicialización de la prueba y antes de los métodos de prueba | ✓ | ✓ |
| Miko_4103 | Se deben ordenar los métodos de inicialización de la prueba única antes de todos los demás métodos | ✓ | ✓ |
| Miko_4104 | Los métodos de limpieza de pruebas únicas deben ordenarse directamente después de los métodos de inicialización de prueba única | ✓ | ✓ |
| IDENTIFICACIÓN | Título | Habilitado por defecto | CodeFIX disponible |
|---|---|---|---|
| Miko_5001 | Los métodos de 'depuración' y 'debugformat' deben invocarse solo después de 'isdebugenable' | ✓ | ✓ |
| Miko_5002 | Los métodos de 'xxxformat' deben invocarse solo con múltiples argumentos | ✓ | ✓ |
| Miko_5003 | Los métodos de registro correctos deben invocarse para excepciones | ✓ | - |
| Miko_5010 | No use 'object.equals ()' en los tipos de valor | ✓ | ✓ |
| Miko_5011 | No concatene las cadenas con += operador | ✓ | - |
| Miko_5012 | No use 'retorno de rendimiento' para estructuras recursivamente definidas | ✓ | - |
| Miko_5013 | No cree matrices vacías | ✓ | ✓ |
| Miko_5014 | No cree listas vacías si el valor de retorno es de solo lectura | ✓ | ✓ |
| Miko_5015 | No pase los literales de las cadenas | ✓ | ✓ |
| Miko_5016 | Use un hashset para las búsquedas en 'list.removeall' | ✓ | - |
| Miko_5017 | Los campos o variables asignadas con literales de cadena deben ser constantes | ✓ | ✓ |
| IDENTIFICACIÓN | Título | Habilitado por defecto | CodeFIX disponible |
|---|---|---|---|
| Miko_6001 | Las declaraciones de registro deben estar rodeadas de líneas en blanco | ✓ | ✓ |
| Miko_6002 | Las declaraciones de afirmación deben estar rodeadas de líneas en blanco | ✓ | ✓ |
| Miko_6003 | Las declaraciones variables locales deben ser precedidas por líneas en blanco | ✓ | ✓ |
| Miko_6004 | Variable assignment statements should be preceded by blank lines | ✓ | ✓ |
| 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 | ✓ | ✓ |