示例#1
0
        public CodeArgumentDirectionExpression(CodeParameterDirection direction, CodeExpression expression)
        {
            Ensure.That(nameof(expression)).IsNotNull(expression);

            Direction  = direction;
            Expression = expression;
        }
        public static void Generate(this CodeParameterDirection dir, CodeGenerator generator)
        {
            switch (dir)
            {
            case CodeParameterDirection.Default: break;

            case CodeParameterDirection.Out: generator.Write(TokenType.Keyword, "out"); generator.Write(TokenType.Space, ' '); break;

            case CodeParameterDirection.Ref: generator.Write(TokenType.Keyword, "ref"); generator.Write(TokenType.Space, ' '); break;
            }
        }
示例#3
0
        /// <summary>
        /// Return parameter model with new direction or same model if direction not changed.
        /// </summary>
        /// <param name="direction">New parameter direction.</param>
        /// <returns>Parameter model with new direction or same model if direction not changed.</returns>
        internal ParameterModel WithDirection(CodeParameterDirection direction)
        {
            if (direction == Direction)
            {
                return(this);
            }

            return(new ParameterModel(Name, Type, direction)
            {
                Description = Description
            });
        }
示例#4
0
 internal CodeParameter(CodeTypeToken type, CodeIdentifier name, CodeParameterDirection direction, ICodeExpression?defaultValue)
     : base(name, type)
 {
     Direction    = direction;
     DefaultValue = defaultValue;
 }
示例#5
0
 public CodeParameter(IType type, CodeIdentifier name, CodeParameterDirection direction, ICodeExpression?defaultValue)
     : this(new CodeTypeToken(type), name, direction, defaultValue)
 {
 }
示例#6
0
 public ParameterModel(string name, IType type, CodeParameterDirection direction)
 {
     Name      = name;
     Type      = type;
     Direction = direction;
 }
示例#7
0
 public static CodeArgumentDirectionExpression ArgumentDirection(CodeParameterDirection direction, CodeExpression target) => new CodeArgumentDirectionExpression(direction, target);
示例#8
0
 public static CodeParameterDeclaration ParamDecl(CodeParameterDirection direction, CodeTypeReference type, string name) => new CodeParameterDeclaration(direction, type, name);
示例#9
0
 public CodeParameterDeclaration(CodeParameterDirection direction, CodeTypeReference type, string name)
 {
     Direction = direction;
     Type      = type;
     Name      = name;
 }