internal ConstantDeclaration(
			string name,
			Declaration declaringType, 
			Type t, 
			SnippetExpression expression
			)
			:base(name,declaringType)
		{
			if (t==null)
				throw new ArgumentNullException("t");
			if (expression == null)
				throw new ArgumentNullException("t");
			this.type = t;
			this.expression = expression;
		}
        public ConstantDeclaration AddConstant(Type type, string name, SnippetExpression expression)
        {
            if (type == null)
            {
                throw new ArgumentNullException(null);
            }
            if (name == null)
            {
                throw new ArgumentNullException(null);
            }
            if (expression == null)
            {
                throw new ArgumentNullException(null);
            }
            if (this.constants.Contains(name))
            {
                throw new ArgumentException("field already existing in class");
            }

            var c = new ConstantDeclaration(this.Conformer.ToCamel(name), this, type, expression);

            this.constants.Add(c);
            return(c);
        }