Domanda

Ho un paio di fastidiosi avvisi sul compilatore per un'app che ho portato da VB6 qualche tempo fa riguardo alla conformità CLS, tra cui:

Name '_AnIdentifier' is not CLS-Compliant.
Type of parameter 'myType' is not CLS-Compliant.

Nonostante ciò, la mia app sembra funzionare bene da client COM e gestiti. Ho visto diversi articoli che descrivono cosa fare per rendere il codice conforme a CLS e probabilmente andrò avanti e lo farò comunque per sbarazzarmi degli avvertimenti fastidiosi, ma sono curioso di sapere quali sono gli svantaggi del codice non conforme a CLS termini? Quali sono i limiti di questa impostazione che non ho ancora scoperto?

È stato utile?

Soluzione

Fondamentalmente, la tua classe potrebbe non essere accessibile (o potrebbe comportarsi in modo strano, come numeri positivi di grandi dimensioni trattati come negativi), se utilizzata con alcuni linguaggi .NET. Non posso dire quali lingue potrebbero essere.

Ad esempio, non credo che sia necessaria una lingua per riconoscere un identificatore che inizia con un carattere di sottolineatura. C # lo consente, quindi sei al sicuro lì, ma per altre lingue, " _AnIdentifier " potrebbe essere nascosto o avere un nome generato dal sistema.

Altri suggerimenti

Ho riscontrato problemi con gli strumenti di offuscamento che generano codice offuscato errato quando viene offuscato il codice non conforme a CLS.

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top