/// <summary>
		/// 将本对象的指定的属性拷贝对目标对象�?
		/// </summary>
		/// <param name="target"> 目标对象 </param>
		/// <param name="props"> 属性索�? </param>
		public virtual void copyTo(FloatNumberPropertyObject target, int[] props)
		{
			for (int i = 0; i < props.Length; i++)
			{
				target.set(props[i], this.get(props[i]));
			}
		}
		/// <summary>
		/// 向指定的参数拷贝数据
		/// </summary>
		/// <param name="target"> </param>
		/// <exception cref="IllegalArgumentException"> 如果target的对象类型与该类型不一�? </exception>
		public virtual void copyTo(FloatNumberPropertyObject target)
		{
			if (target.propertyType != this.propertyType)
			{
				throw new System.ArgumentException("Not the same property type.");
			}
			target.props.copyFrom(this.props);
		}
		/// <summary>
		/// 从指定的参数中拷贝数据到本身<br>
		/// 注:此方法change全部的Bit位,如果需要精确比较,请使�?<seealso cref="#copyFromAndCompare(FloatNumberPropertyObject)"/>
		/// </summary>
		/// <param name="src"> </param>
		/// <exception cref="IllegalArgumentException"> 如果src的对象类型与该类型不一�? </exception>
		/// <exception cref="IllegalStateException"> 如果该对象处于只读状�? </exception>
		public virtual void copyFrom(FloatNumberPropertyObject src)
		{
			if (src.propertyType != this.propertyType)
			{
				throw new System.ArgumentException("Not the same property type.");
			}
			if (!isReadOnly)
			{
				this.props.copyFrom(src.props);
			}
			else
			{
				throw new System.NotSupportedException("PROP_READONLY");
			}
		}
		/// <summary>
		/// 从本身减去将指定参数中的数据
		/// </summary>
		/// <param name="src"> </param>
		/// <exception cref="IllegalArgumentException"> 如果src的对象类型与该类型不一�? </exception>
		/// <exception cref="IllegalStateException"> 如果该对象处于只读状�? </exception>
		public virtual void dec(FloatNumberPropertyObject src)
		{
			addBySign(src, -1);
		}
		/// <summary>
		/// 将当前的修改标识填充到toPropObj�?
		/// <para>
		/// <b>注意:此方法只在战斗中使用,其它情况“不建议”使�?/b>
		/// </para>
		/// </summary>
		/// <param name="toPropObj"> </param>
		public virtual void fillChangedBit(FloatNumberPropertyObject toPropObj)
		{
			if (toPropObj.propertyType != this.propertyType)
			{
				throw new System.ArgumentException("Not the same property type.");
			}
			if (!isReadOnly)
			{
				this.props.fillChangedBit(toPropObj.props);
			}
			else
			{
				throw new System.NotSupportedException("PROP_READONLY");
			}
		}
		/// <summary>
		/// 拷贝并比�?br>
		/// 只设置改变的值的Bit�?如不关心change,请使用 <seealso cref="#copyFrom(FloatNumberPropertyObject)"/>
		/// </summary>
		/// <param name="src"> </param>
		/// <exception cref="IllegalArgumentException"> 如果src的对象类型与该类型不一�? </exception>
		/// <exception cref="IllegalStateException"> 如果该对象处于只读状�? </exception>
		public virtual void copyFromAndCompare(FloatNumberPropertyObject src)
		{
			if (src.propertyType != this.propertyType)
			{
				throw new System.ArgumentException("Not the same property type.");
			}
			int _size = this.size();
			for (int i = 0; i < _size; i++)
			{
				this.set(i, src.get(i));
			}
		}
		/// <summary>
		/// 为本身加上或减去将指定参数中的数�?
		/// </summary>
		/// <param name="src"> </param>
		/// <param name="sign"> 1 or -1 (�?�? </param>
		/// <exception cref="IllegalArgumentException"> 如果src的对象类型与该类型不一�? </exception>
		/// <exception cref="IllegalStateException"> 如果该对象处于只读状�? </exception>
		private void addBySign(FloatNumberPropertyObject src, int sign)
		{
			if (src.propertyType != this.propertyType)
			{
				throw new System.ArgumentException("Not the same property type.");
			}
			if (!isReadOnly)
			{
				for (int i = 0; i < size(); i++)
				{
					add(i, sign * src.get(i));
				}
			}
			else
			{
				throw new System.NotSupportedException("PROP_READONLY");
			}
		}