📜  C#| Uri.IsWellFormedOriginalString()方法

📅  最后修改于: 2021-05-29 21:38:57             🧑  作者: Mango

Uri.IsWellFormedOriginalString()方法用于显示用于构造此Uri的字符串是否字符串,是否不需要进一步转义。

下面的程序说明了Uri.IsWellFormedOriginalString()方法的用法

范例1:

// C# program to demonstrate the
// Uri.IsWellFormedOriginalString()
// Method
using System;
using System.Globalization;
  
class GFG {
  
    // Main Method
    public static void Main()
    {
        // Declaring and initializing address
        Uri address1 = new Uri("http://www.contoso.com/index.htm#search");
  
        // Validating if Uri is well formed or not
        // using IsWellFormedOriginalString() method
        bool value = address1.IsWellFormedOriginalString();
  
        // Displaying the result
        if (value)
            Console.WriteLine("uri is well formed");
        else
            Console.WriteLine("uri is not well formed");
    }
}
输出:
uri is well formed

范例2:

// C# program to demonstrate the
// Uri.IsWellFormedOriginalString() 
// Method
using System;
using System.Globalization;
  
class GFG {
  
    // Main Method
    public static void Main()
    {
  
        try {
  
            // calling get() method
            get(new Uri("http://www.contoso.com/path"));
  
            // if The string is not correctly escaped.
            get(new Uri("http://www.contoso.com/path???/file name"));
  
            // The string is an absolute Uri 
            // that represents an implicit 
            // file Uri.
            get(new Uri("c:\\directory\filename"));
  
            // The string is an absolute URI that
            // is missing a slash before the path.
            get(new Uri("file://c:/directory/filename"));
  
            // The parser for the Uri.Scheme indicates 
            // that the original string was not well-formed.
            get(new Uri("xy11.z://www.contoso.com/path/file"));
  
            // The string contains unescaped backslashes
            // even if they are treated as forwarding slashes.
            get(new Uri("http:\\host/path/file")); 
  
            // The string represents a hierarchical 
            // absolute Uri and does not contain "://".
            get(new Uri("www.contoso.com/path/file"));
        }
  
        catch (UriFormatException e) 
        {
            Console.Write("uri is so poorly formed that system thrown ");
            Console.Write("{0}", e.GetType(), e.Message);
            Environment.Exit(1);
        }
    }
  
    // defining get() method
    public static void get(Uri address)
    {
        // Validating if Uri is well formed or not
        // using IsWellFormedOriginalString() method
        bool value = address.IsWellFormedOriginalString();
  
        // Displaying the result
        if (value)
            Console.WriteLine("uri is well formed");
        else
            Console.WriteLine("uri is poorly formed");
    }
}
输出:
uri is well formed
uri is poorly formed
uri is poorly formed
uri is poorly formed
uri is well formed
uri is so poorly formed that system thrown System.UriFormatException

参考:

  • https://docs.microsoft.com/zh-cn/dotnet/api/system.uri.iswellformedoriginalstring?view=netstandard-2.1