public Property AddReadOnlyProperty(string name, IType type) { var property = _codeBuilder.CreateProperty(name, type); property.Getter = _codeBuilder.CreateMethod("get_" + name, type, TypeMemberModifiers.Public); _cd.Members.Add(property); return(property); }
Method CreateFieldAccessor(IField member) { BooCodeBuilder builder = _context.CodeBuilder; Method method = builder.CreateMethod("___" + member.Name, member.Type, TypeMemberModifiers.None); method.Body.Add( new ReturnStatement( builder.CreateReference(member))); return(method); }
public BooMethodBuilder(BooCodeBuilder codeBuilder, string name, IType returnType, TypeMemberModifiers modifiers) { if (null == codeBuilder) throw new ArgumentNullException("codeBuilder"); if (null == name) throw new ArgumentNullException("name"); _codeBuilder = codeBuilder; _method = _codeBuilder.CreateMethod(name, returnType, modifiers); }
public BooMethodBuilder(BooCodeBuilder codeBuilder, string name, IType returnType, TypeMemberModifiers modifiers) { if (null == codeBuilder) { throw new ArgumentNullException("codeBuilder"); } if (null == name) { throw new ArgumentNullException("name"); } _codeBuilder = codeBuilder; _method = _codeBuilder.CreateMethod(name, returnType, modifiers); }
Method CreateFieldSetter(IField member) { BooCodeBuilder builder = _context.CodeBuilder; Method method = builder.CreateMethod("___" + member.Name, _context.TypeSystemServices.VoidType, TypeMemberModifiers.None); ParameterDeclaration value = builder.CreateParameterDeclaration(1, "value", member.Type); method.Parameters.Add(value); method.Body.Add( builder.CreateFieldAssignment( LexicalInfo.Empty, member, builder.CreateReference(value))); return(method); }