Pourquoi la déclaration (j++); interdit?

Le code suivant est incorrect (voir sur ideone):

public class Test
{
    public static void Main()
    {
        int j = 5;
        (j++);      //if we remove the "(" and ")" then this compiles fine.
    }
}

erreur CS0201: Seule la cession, l'appel, incrémentation, décrémentation, attendent, et
de nouvelles expressions d'objet peut être utilisé comme une déclaration

  1. Pourquoi le code de la compilation quand on enlève les parenthèses?
  2. Pourquoi ne pas compiler avec les parenthèses?
  3. Pourquoi C# conçu de cette façon?
  • beaucoup de personnes sont impliquées avec le langage C# design sont TELLEMENT, donc c'est pourquoi j'ai demandé. Rien de mal à cela?
  • Le compilateur attend une déclaration ici, mais ces parenthèses indiquent une valeur.
  • Je ne peux pas imaginer un plus sur le sujet de la question de "pourquoi un langage de programmation particulier gérer ce comportement spécifique de cette façon?"
  • se sent comme il tomberait sous constructif subjective de la question, stackoverflow.com/help/dont-ask
  • Compte tenu de la réponse a déjà attiré des réponses sur 4 qui ne suivent pas ces points, de toute évidence, elle ne l'est pas. Il n'est également pas spécifiquement un programme pratique de problème.
  • à partir de la question, quelqu'un pourrait raisonnablement pontificat sur le but derrière pourquoi il n'est pas valide ("intuitions Profondes apprécié"). Il y a quelques très bien, C# experts qui pourraient comprendre les conséquences de la décision en dépit de ne pas être les créateurs de la langue. Le fait que les réponses l'ont pas encore fait, n'est peut-être un reflet de la clarté de la question, mais pas l'intention - pour ce que ça vaut, c'était ma lecture, mais je n'ai pas l'expertise pour répondre.
  • Maintenant, nous avons une réponse de Eric Lippert. Vous voudrez peut-être repenser votre décision au sujet de la accepté de répondre. C'est Noël, alors peut-être que vous avez accepté la réponse trop tôt.
  • Êtes-vous ce qui implique que les décisions de conception ne sont jamais documentés et sont tout à fait inconnu à tout le monde? Il ne demande pas de SORTE que les utilisateurs de deviner, il leur demande d'une réponse - qui n'implique pas qu'il est demandé pour une deviner. Si les gens à répondre à une conjecture est sur eux, ce n'est pas lui. Et que l'OP a souligné, il y a des gens sur un débordement de pile qui n'a fait travailler sur C# et ont pris ces décisions.
  • Il n'est pas ce qui implique que les décisions de conception ne sont jamais documenté. Il n'est pas non plus ce qui implique que la question n'est pas intéressant. Il dit que la question a probablement besoin d'une réponse de la part des auteurs eux-mêmes, et n'est donc pas adapté à ce qu', car il conduit à une spéculation sauvage, comme démontré ici. Eric Lippert obtient autant autorité que n'importe qui pourrait demander, ce qui économise de cette question.
  • Eh bien, je suis en désaccord; I ne pas crois que la réponse doit venir des auteurs eux-mêmes, bien que leur réponse serait le meilleur résultat possible. De nombreuses questions peuvent conduire à une spéculation sauvage, mais c'est un problème de la answerers, pas la personne. Il ya beaucoup de gens qui postent des hypothèses de réponses, ce qui rend la réponse mauvais, pas la question.
  • Le problème est que, oui, à moins que la justification est déjà documenté quelque part, il doit, mais la spéculation est amusant et qui ne veut pas partager sa propre? Si vous trouvez une façon de s'assurer que ces purs (ou "éduqués") suppositions sont fiable cueilli, dites-moi et nous allons faire fortune.
  • Je suis plus intéressé de savoir si vous pouvez le faire dans tous langue et pourquoi vous voulez? Il est hideux et fait très peu de sens.

InformationsquelleAutor user10607 | 2015-12-22