示例#1
0
		public override IodineObject Invoke (VirtualMachine vm, IodineObject[] arguments)
		{
			int i = 0;

			var suitableOverload = type.GetConstructors ().Where (p => p.GetParameters ().Length ==
				arguments.Length).
				FirstOrDefault ();
			
			Type[] types = suitableOverload.GetParameters ().Select (p => p.ParameterType).ToArray ();

			object[] objects = arguments.Select (p => typeRegistry.ConvertToNativeObject (p,
				types [i++])).ToArray ();
			
			return ObjectWrapper.CreateFromObject (typeRegistry, this, suitableOverload.Invoke (objects));
		}
示例#2
0
			private IodineObject join (VirtualMachine vm, IodineObject self, IodineObject[] args)
			{
				string[] paths = args.Select (p => p.ToString ()).ToArray ();
				return new IodineString (Path.Combine (paths));
			}