name() public méthode

public name ( ) : string
Résultat string
Exemple #1
0
        //////////////////////////////////////////////////////////////////////////
        // Factory
        //////////////////////////////////////////////////////////////////////////
        /// <summary>
        /// Parse the signature into a loaded type.
        /// </summary>
        public static Type load(string sig, bool check, Pod loadingPod)
        {
            // if last character is ?, then parse a nullable
              int len = sig.Length;
              int last = len > 1 ? sig[len-1] : 0;
              if (last == '?')
            return load(sig.Substring(0, len-1), check, loadingPod).toNullable();

              // if the last character isn't ] or |, then this a non-generic
              // type and we don't even need to allocate a parser
              if (last != ']' && last != '|')
              {
            string podName, typeName;
            try
            {
              int colon = sig.IndexOf(':');
              if (sig[colon+1] != ':') throw new System.Exception();
              podName  = sig.Substring(0, colon);
              typeName = sig.Substring(colon+2);
              if (podName.Length == 0 || typeName.Length == 0) throw new System.Exception();
            }
            catch (System.Exception)
            {
              throw ArgErr.make("Invalid type signature '" + sig + "', use <pod>::<type>").val;
            }

            // if the type is from the pod being loaded then return to the pod
            if (loadingPod != null && podName == loadingPod.name())
              return loadingPod.type(typeName, check);

            // do a straight lookup
            return find(podName, typeName, check);
              }

              // we got our work cut out for us - create parser
              try
              {
            return new TypeParser(sig, check, loadingPod).LoadTop();
              }
              catch (Err.Val e)
              {
            throw e;
              }
              catch (System.Exception)
              {
            throw Err(sig).val;
              }
        }