当前位置: 首页>>代码示例 >>用法及示例精选 >>正文


C# Uri.MakeRelativeUri(Uri)用法及代码示例


Uri.MakeRelativeUri(Uri)方法用于确定两个Uri实例之间的差异。

用法: public Uri MakeRelativeUri (Uri uri);
Here, it takes the URI to compare to the current URI.

返回值:如果此URI实例的主机名和方案与uri相同,则此方法返回一个相对Uri,将其附加到当前URI实例后产生uri。如果主机名或方案不同,则此方法返回代表uri参数的Uri。


异常:

  • ArgumentNullException:如果uri为null。
  • UriFormatException:如果此实例表示相对URI,并且此属性仅对绝对URI有效。

以下示例程序旨在说明Uri.MakeRelativeUri(Uri)方法的用法:

示例1:

// C# program to demonstrate the 
// Uri.MakeRelativeUri() Method 
using System; 
using System.Globalization; 
  
class GFG { 
  
    // Main Method 
    public static void Main() 
    { 
        // Create a base Uri. 
        Uri address1 = new Uri("http://www.contoso.com/"); 
  
        // Create a new Uri from a string. 
        Uri address2 = new Uri("http://www.contoso.com/index.htm?date=today"); 
  
        // Determining the difference  
        // between address1 and address2. 
        // using MakeRelativeUri() method 
  
        Uri uri = address1.MakeRelativeUri(address2); 
  
        // Displaying the result 
        Console.WriteLine("relative uri is : {0}", uri); 
    } 
}
输出:
relative uri is : index.htm?date=today

示例2:对于ArgumentNullException

// C# program to demonstrate the 
// Uri.MakeRelativeUri() Method 
using System; 
using System.Globalization; 
  
class GFG { 
  
    // Main Method 
    public static void Main() 
    { 
        try { 
  
            // Create a base Uri. 
            Uri address1 = new Uri("http://www.contoso.com/"); 
  
            // Create a new Uri from a string. 
            Uri address2 = null; 
  
            // Determining the difference  
            // between address1 and address2. 
            // using MakeRelativeUri() method 
            Uri uri = address1.MakeRelativeUri(address2); 
  
            // Displaying the result 
            Console.WriteLine("relative uri is : {0}", uri); 
        } 
  
        catch (ArgumentNullException e)  
        { 
            Console.WriteLine("uri should not be null"); 
            Console.Write("Exception Thrown: "); 
            Console.Write("{0}", e.GetType(), e.Message); 
        } 
    } 
}
输出:
uri should not be null
Exception Thrown: System.ArgumentNullException

示例3:对于UriFormatException

// C# program to demonstrate the 
// Uri.MakeRelativeUri() Method 
using System; 
using System.Globalization; 
  
class GFG { 
  
    // Main Method 
    public static void Main() 
    { 
        try { 
  
            // Create a base Uri. 
            Uri address1 = new Uri("http://www.contoso.com/"); 
  
            // Determining the difference 
            // between address1 and address2. 
            // using MakeRelativeUri() method 
  
            Uri uri = address1.MakeRelativeUri(new Uri("http:://www.contoso.com/??index.htm?date=today")); 
  
            // Displaying the result 
            Console.WriteLine("relative uri is : {0}", uri); 
        } 
        catch (ArgumentNullException e) { 
            Console.WriteLine("uri should not be null"); 
            Console.Write("Exception Thrown: "); 
            Console.Write("{0}", e.GetType(), e.Message); 
        } 
        catch (UriFormatException e) { 
            Console.WriteLine("uri should be in correct format"); 
            Console.Write("Exception Thrown: "); 
            Console.Write("{0}", e.GetType(), e.Message); 
        } 
    } 
}
输出:
uri should be in correct format
Exception Thrown: System.UriFormatException

参考:



相关用法


注:本文由纯净天空筛选整理自RohitPrasad3大神的英文原创作品 C# | Uri.MakeRelativeUri(Uri) Method。非经特殊声明,原始代码版权归原作者所有,本译文未经允许或授权,请勿转载或复制。