예제 #1
0
        public override string ToString()
        {
            StringBuilder sb = StringBuilderPool.create();

            writeToStringBuilder(sb);
            return(StringBuilderPool.releaseStr(sb));
        }
예제 #2
0
        /** 输出数据列表 */
        public static void printDataList <T>(SList <T> list) where T : BaseData
        {
            StringBuilder sb = StringBuilderPool.create();

            T data;

            for (int i = 0, len = list.size(); i < len; i++)
            {
                data = list.get(i);

                sb.Append(i);
                sb.Append(":");

                if (data == null)
                {
                    sb.Append("null");
                }
                else
                {
                    sb.Append(data.toDataString());
                }

                sb.Append("\n");
            }

            Ctrl.print(StringBuilderPool.releaseStr(sb));
        }
예제 #3
0
        /** 执行一个Adapater */
        private static void doOneClass(ILClassInfo clsInfo, String path, bool isShine, StringBuilder writer)
        {
            string str = _templete;

            if (isShine)
            {
                str = str.Replace("$namespace", "namespace ShineEngine" + Enter + "{");
                str = str.Replace("$_namespace", "}");
            }
            else
            {
                str = str.Replace("$namespace", "using ShineEngine;" + Enter);
                str = str.Replace("$_namespace", "");
            }

            str = str.Replace("$clsName", clsInfo.clsName);

            StringBuilder sb1   = StringBuilderPool.create();
            StringBuilder sb2   = StringBuilderPool.create();
            IntSet        marks = new IntSet();

            for (int i = 0, len = clsInfo.methods.size(); i < len; ++i)
            {
                doOneMethod(clsInfo.methods.get(i), i, sb1, sb2, marks);
            }

            str = str.Replace("$1", StringBuilderPool.releaseStr(sb1));
            str = str.Replace("$2", StringBuilderPool.releaseStr(sb2));

            FileUtils.writeFileForUTF(path + "/" + clsInfo.clsName + "Adapter.cs", str);

            writer.Append("appdomain.RegisterCrossBindingAdaptor(new " + clsInfo.clsName + "Adapter());");
            endClsLine(writer);
        }
예제 #4
0
파일: LogInfo.cs 프로젝트: shineTeam7/home3
        /** 返回字符串并析构 */
        public string releaseString()
        {
            StringBuilder sb = _sb;

            _sb = null;
            return(StringBuilderPool.releaseStr(sb));
        }
예제 #5
0
        /** 获取字符串时间表达(ms) */
        public static string getTimeStr(long time, bool onlyDay = false)
        {
            StringBuilder sb = StringBuilderPool.create();

            writeTimeStr(sb, time, onlyDay);
            return(StringBuilderPool.releaseStr(sb));
        }
예제 #6
0
        /** 转成字符串 */
        override public string ToString()
        {
            StringBuilder sb = StringBuilderPool.create();

            buiildXMLString(sb, 0);
            return(StringBuilderPool.releaseStr(sb));
        }
예제 #7
0
        /** 二进制转string */
        public static string bytesToString(byte[] buf, int off, int length)
        {
            StringBuilder sb = StringBuilderPool.create();

            for (int i = off; i < length; ++i)
            {
                string temp = Convert.ToString(buf[i] & 0xff, 16);

                if (temp.Length < 2)
                {
                    sb.Append('0');
                }

                sb.Append(temp);
            }

            return(StringBuilderPool.releaseStr(sb));
        }
예제 #8
0
        /** 获取cdn资源下载路径(WWW用) */
        public static string getCDNResourcePath(string url, int resourceVersion)
        {
            if (!ShineSetting.isRelease)
            {
                return(getStreamingAssetsPath(url, true));
            }

            StringBuilder sb = StringBuilderPool.create();

            sb.Append(ShineGlobal.cdnSourcePath);
            sb.Append('/');
            sb.Append(getPlatformName());
            sb.Append("/resource_");
            sb.Append(resourceVersion);
            sb.Append('/');
            sb.Append(url);

            return(StringBuilderPool.releaseStr(sb));
        }
예제 #9
0
        /** 获取资源路径(streamingAsset)(needPlatform:是否需要运行平台前缀)(forWWW:是否www加载) */
        private static string toGetPath(int type, string url, bool forWWW)
        {
            StringBuilder sb = StringBuilderPool.create();

            if (forWWW && (type != StreamingAssetsPath || SystemControl.platform != RuntimePlatform.Android || !ShineSetting.isRelease))
            {
                sb.Append("file:///");
            }

            //调试模式
            if (!ShineSetting.isRelease && type == StreamingAssetsPath)
            {
                sb.Append(_dataPath);
                sb.Append(ShineGlobal.sourcePath);
                sb.Append('/');

                if (_isCommonResourceFunc != null && _isCommonResourceFunc(url))
                {
                    sb.Append("common/");
                }
                else
                {
                    sb.Append(getPlatformName());
                    sb.Append('/');
                }
            }
            else
            {
                sb.Append(toGetRootPath(type));

                if (type != StreamingAssetsPath)
                {
                    sb.Append("/resource");
                }

                sb.Append('/');
            }

            sb.Append(url);

            return(StringBuilderPool.releaseStr(sb));
        }
예제 #10
0
        /** 输出数据字典 */
        public static void printDataDic <T>(IntObjectMap <T> dic) where T : BaseData
        {
            StringBuilder sb = StringBuilderPool.create();

            IntObjectMap <T> fDic;

            if (!(fDic = dic).isEmpty())
            {
                int[] keys   = fDic.getKeys();
                T[]   values = fDic.getValues();
                int   fv     = fDic.getFreeValue();
                int   k;
                T     v;

                for (int i = keys.Length - 1; i >= 0; --i)
                {
                    if ((k = keys[i]) != fv)
                    {
                        v = values[i];

                        sb.Append(k);
                        sb.Append(":");

                        if (v == null)
                        {
                            sb.Append("null");
                        }
                        else
                        {
                            sb.Append(v.toDataString());
                        }

                        sb.Append("\n");
                    }
                }
            }

            Ctrl.log(StringBuilderPool.releaseStr(sb));
        }
예제 #11
0
 /** 释放并获取string */
 public string releaseStr()
 {
     return(StringBuilderPool.releaseStr(sb));
 }