in sostanza, non si deve bloccare qualsiasi oggetto esterno a meno che non è specificamente un oggetto di bloccaggio (ad esempio la proprietà SyncRoot
sulla non generico ICollection
è stato progettato per). Ciò comporta il rischio che altri "utenti" del riferimento si blocchino anche su di esso, portando a blocchi indesiderati o addirittura a deadlock.
Ovvisamente, this
e typeof()
sono per definizione oggetti esterni. Le stringhe sono immutabili e le stringhe letterali sono tutte internate, in modo che lo stesso riferimento possa essere in se in luoghi diversi anche se lo si assegna direttamente nell'oggetto.
Non conosco una regola StyleCop per quelli, ma non ho una buona panoramica di ciò che è disponibile per StyleCop o FxCop, quindi potrebbe esserci qualcosa di interessante da verificare per quei casi. Verificerei la sincronizzazione solo sui membri privati che non sono stringhe e non sono restituiti direttamente in alcuna proprietà o metodo.
StyleCop solo controlli di codifica stile e non il comportamento. Se hai bisogno di una regola per questo, FxCop è lo strumento per questo. – Steven
domanda stupida: quando right-click un progetto C# in VS2010 e selezionare 'Esegui analisi del codice" ... è che FxCop, o qualche altro strumento anche:? Se voglio rilevare un caso quando un'eccezione viene ri-gettato e una traccia dello stack è stato cut-off - è che anche un lavoro di FxCop –
dispari, si continuano a chiedere per gli strumenti che non possono sovraperformare funzionalità Find di un editor –