コード例 #1
0
        public JNode VisitNamedExpression(NamedExpression node)
        {
            var name = new JJsonMember {
                Name = node.Name
            };

            if (name.Name.IsNullOrEmpty())
            {
                throw new NotImplementedException();
                //if (d.expression.e == cs_node.n_simple_name)
                //    name.Name = ((CsSimpleName)d.expression).identifier.identifier;
                //else if (d.expression.e == cs_node.n_primary_expression_member_access)
                //    name.Name = ((CsPrimaryExpressionMemberAccess)d.expression).identifier.identifier;
            }
            var value      = VisitExpression(node.Expression);
            var ce         = node.GetParentType();
            var nativeJson = JMeta.UseNativeJsons(ce.GetDefinitionOrArrayType(Compiler));

            if (!nativeJson)
            {
                name.Name = "get_" + name.Name;
                value     = new JFunction {
                    Block = new JBlock {
                        Statements = new List <JStatement> {
                            new JReturnStatement {
                                Expression = value
                            }
                        }
                    }
                };
            }
            return(new JJsonNameValue {
                Name = name, Value = value
            });
        }
コード例 #2
0
ファイル: JCodeImporter.cs プロジェクト: wangchengqun/Cs2Java
        /// <summary>
        /// Indicates that object is IProperty that uses getter setter functions, and not native fields
        /// </summary>
        /// <param name="entity"></param>
        /// <returns></returns>
        bool IsEntityFunctionProperty(IEntity entity, ResolveResult scope)
        {
            var pe = entity as IProperty;

            if (pe != null)
            {
                var ce = pe.DeclaringType;
                if (ce != null && ce.Kind == TypeKind.Anonymous)
                {
                    var ce2 = scope.GetParentType();
                    if (ce2 != null && JMeta.UseNativeJsons(ce2))
                    {
                        return(false);
                    }
                }
                return(!JMeta.IsNativeField(pe) && !JMeta.UseNativeIndexer(pe)); // && !Sk.IsNativeProperty(pe);
            }
            return(false);
        }