Ejemplo n.º 1
0
        //============================================================
        // <T>获得例外对象的消息内容。</T>
        //
        // @param message 消息内容
        // @param exception 例外对象
        //============================================================
        public static void MakeMessage(FString message, Exception exception)
        {
            // 建立例外堆栈
            FObjects <Exception> stack = new FObjects <Exception>();
            Exception            find  = exception;

            while (find != null)
            {
                stack.Push(find);
                if (find is FException)
                {
                    find = ((FException)find).Reason;
                }
                else
                {
                    find = find.InnerException;
                }
            }
            // 加入消息内容
            stack.Reverse();
            message.AppendLine("Exception has raised. (@.@)");
            foreach (Exception exp in stack)
            {
                message.AppendLine(RDump.LINE_L2);
                string msg = exp.Message;
                if (!RString.IsBlank(msg))
                {
                    message.AppendLine(msg);
                }
                message.AppendLine(exp.StackTrace);
            }
        }
Ejemplo n.º 2
0
 //============================================================
 // <T>判断是否和指定对象集合相等。</T>
 //
 // @param items 对象集合
 // @return 是否相等
 //============================================================
 public bool Equals(FObjects <T> items)
 {
     // 检查数组是否为空
     if (items == null)
     {
         return(false);
     }
     // 检查对象是否相等
     return(Equals(items.Items, 0, items.Count));
 }
Ejemplo n.º 3
0
 //============================================================
 // <T>刷新对象块到外部。</T>
 //
 // @param items 对象数组
 //============================================================
 public void Flush(FObjects <T> items)
 {
     items.Assign(_items, 0, _count);
     Array.Clear(_items, 0, _items.Length);
     _count = 0;
 }
Ejemplo n.º 4
0
 //============================================================
 // <T>追加对象数组。</T>
 //
 // @param items 对象数组
 //============================================================
 public void Append(FObjects <T> items)
 {
     Append(items.Items, 0, items.Count);
 }
Ejemplo n.º 5
0
 //============================================================
 // <T>接收对象数组。</T>
 //
 // @param items 对象数组
 //============================================================
 public void Assign(FObjects <T> items)
 {
     Assign(items.Items, 0, items.Count);
 }
Ejemplo n.º 6
0
 //============================================================
 // <T>查找对象数组的位置。</T>
 // <P>如果不存在则返回-1。</P>
 //
 // @param items 对象数组
 // @return 所在位置
 //============================================================
 public int Find(FObjects <T> items)
 {
     return(RTypes <T> .Find(_items, 0, _count, items.Items, 0, items.Count));
 }