Perché un errore di chiusura #region
causa un errore del compilatore? Dopo tutto, la regione stessa non ha assolutamente alcun impatto sul codice compilato, giusto?Perché #region genera errori di compilazione?
Credo sia perché è una direttiva preprocessore, ma perché? Dopotutto non viene usato come le altre direttive.
class Application
{
#region Whatever <- Causes an error.
static void Main(string[] c)
{
}
}
Perché non può essere semplicemente ignorato? O c'è una caratteristica che non conosco su #region
che spiega perché è stata compilata?
Modifica: ho capito che questo esempio non si compila perché non c'è il corrispondente #endregion
. Ma non dovrebbe essere trattato come un tag di chiusura mancante in un commento xml? Voglio dire, ha la stessa importanza, vero?
Secondo Edit: Sto cercando di capire la decisione di progettazione dietro facendo #region
una direttiva del preprocessore. Perché non solo una sorta di commento che l'IDE riconoscerebbe come una regione di codice che può essere compresso?
Non viene compilato perché il preprocessore si aspetta che ci sia qualcosa e non riesce a trovarlo, quindi si verifica un errore. Hai ragione che non modifica il codice, tuttavia il preprocessore deve vedere il tag finale corrispondente. –
No, l'importanza di una direttiva per il preprocessore è molto diversa da un tag di commento xml non corrispondente. – jrummell
@jrummell in realtà, a mio parere, è viceversa. – AgentFire