Básicamente, no debe bloquear ningún objeto externo a menos que sea específicamente un objeto de bloqueo (como la propiedad SyncRoot
en elno genérico)fue diseñado para). Si lo hace, corre el riesgo de que otros "usuarios" de la referencia también se bloqueen, lo que provocará bloqueos no deseados o incluso bloqueos indeseados.
Obviamente, this
y typeof()
son por definición objetos externos. Las cadenas son inmutables y los literales de cadenas están todos internados, por lo que la misma referencia puede estar en trueque en diferentes lugares, incluso si la asignó directamente en su objeto.
No conozco una regla de StyleCop para ellos, pero no tengo una buena visión general de lo que está disponible para StyleCop o FxCop, por lo que podría haber algo extraño para verificar esos casos. Verificaría la sincronización solo en miembros privados que no son cadenas y que no se devuelven directamente en ninguna propiedad o método.
StyleCop sólo comprueba estilo y no el comportamiento de codificación. Si necesita una regla para esto, FxCop es la herramienta para esto. – Steven
Pregunta tonta: cuando hago clic derecho en un proyecto de C# en VS2010 y selecciono 'Ejecutar análisis de código' ... ¿es FxCop, o alguna otra herramienta? También: si quiero detectar un caso cuando se vuelve a lanzar una excepción y un rastro de pila ha sido cortado. ¿Es eso también un trabajo de FxCop? –
Extraño, sigue preguntando por herramientas que no pueden superar la capacidad de búsqueda de un editor. –