Beispiel #1
0
 /// <summary>
 /// 获取Python风格的子字符串
 /// </summary>
 /// <param name="astring"></param>
 /// <param name="startIndex">启始索引. 该处字符将包括在返回结果中. 0代表第一个字符, 负数代表倒数第几个字符(-1表示倒数第一个字符), null等同于0. 默认值是0</param>
 /// <param name="endIndex">结束索引. 该处字符将不包括在返回结果中. 0代表第一个字符, 负数代表倒数第几个字符(-1表示倒数第一个字符), null代表结尾. 默认值为null.</param>
 /// <returns>子字符串</returns>
 public static string SubstringPythonStyle(this string astring, int?startIndex = null, int?endIndex = null)
 {
     IjwHelper.PythonStartEndCalculator(astring.Length, out int startAt, out int endAt, startIndex, endIndex);
     if (endAt < 0)
     {
         return(string.Empty);
     }
     else
     {
         return(astring.SubStringFromTo(startAt, endAt));
     }
 }
Beispiel #2
0
        /// <summary>
        /// 返回命名空间.类名[命名空间.泛型参数1类名,命名空间.泛型参数2类名,...,命名空间.泛型参数n类名]
        /// </summary>
        /// <param name="type"></param>
        /// <returns></returns>
        public static string GetTypeName(this Type type)
        {
            //TODO: check #if condition what about netstandard 2.0
#if NETSTANDARD1_4
            string typename = type.ToString();
#else
            string typename = $"{type.Namespace}.{type.Name}";
            if (type.IsGenericType)
            {
                typename += IjwHelper.ToAllEnumStrings(type.GetGenericArguments(), (s) => s.GetTypeName(), ",", "[", "]");
            }
#endif
            return(typename);
        }