func init // adds using namespace sys.add_use('System') // initialize instance sys.add_var(this.name, 'Array') params = this.props('Constructor').value if(params == 'Constructor') params = '' + (isdef("ElementType") ? d("ElementType") : sys.get_undef_manager("ElementType")) + ', ' + d("Length1") elseif(params == 'Constructor2') params = '' + (isdef("ElementType") ? d("ElementType") : sys.get_undef_manager("ElementType")) + ', ' + d("Length1") + ', ' + d("Length2") elseif(params == 'Constructor3') params = '' + (isdef("ElementType") ? d("ElementType") : sys.get_undef_manager("ElementType")) + ', ' + d("Length1") + ', ' + d("Length2") + ', ' + d("Length3") elseif(params == 'Constructor4') params = '' + (isdef("ElementType") ? d("ElementType") : sys.get_undef_manager("ElementType")) + ', ' + this.make_arr("Lengths") elseif(params == 'Constructor5') params = '' + (isdef("ElementType") ? d("ElementType") : sys.get_undef_manager("ElementType")) + ', ' + this.make_arr("Lengths") + ', ' + this.make_arr("LowerBounds") end blk_init.println(this.codename, ' = Array.CreateInstance(', params, ');') // make methods for properties sys._prop_init('IsFixedSize', 1, 0, 104) sys._prop_init('IsReadOnly', 1, 0, 104) sys._prop_init('IsSynchronized', 1, 0, 104) sys._prop_init('Length', 1, 0, 1) sys._prop_init('LongLength', 1, 0, 105) sys._prop_init('Rank', 1, 0, 1) sys._prop_init('SyncRoot', 1, 0, 0) // makes implementation of methods as properties sys._mtd_as_prop_init('Clone()') sys._mtd_as_prop_init('GetEnumerator()') sys._mtd_as_prop_init('Array') end func doConstructor(elementType, length1) blk.println(this.codename, ' = Array.CreateInstance(', (isdef("ElementType") ? d("ElementType") : sys.get_undef_manager("ElementType")), ', ', d("Length1"), ');') end func doConstructor2(elementType, length1, length2) blk.println(this.codename, ' = Array.CreateInstance(', (isdef("ElementType") ? d("ElementType") : sys.get_undef_manager("ElementType")), ', ', d("Length1"), ', ', d("Length2"), ');') end func doConstructor3(elementType, length1, length2, length3) blk.println(this.codename, ' = Array.CreateInstance(', (isdef("ElementType") ? d("ElementType") : sys.get_undef_manager("ElementType")), ', ', d("Length1"), ', ', d("Length2"), ', ', d("Length3"), ');') end func doConstructor4(elementType, lengths) blk.println(this.codename, ' = Array.CreateInstance(', (isdef("ElementType") ? d("ElementType") : sys.get_undef_manager("ElementType")), ', ', this.make_arr("Lengths"), ');') end func doConstructor5(elementType, lengths, lowerBounds) blk.println(this.codename, ' = Array.CreateInstance(', (isdef("ElementType") ? d("ElementType") : sys.get_undef_manager("ElementType")), ', ', this.make_arr("Lengths"), ', ', this.make_arr("LowerBounds"), ');') end func make_arr(prop) if(isdef(prop)) arr = d(prop) else arr = 'new int[] { ' + this.props(prop).value.join(',') + ' }' end return(arr) end