我想将out参数与字符串变量一起使用

时间:2019-02-23 12:06:04

标签: c# .net

我想使用带字符串变量的out参数。

例如:

string Url = "https://docs.microsoft.com/tr-tr/dotnet/csharp/language-reference/keywords/out-parameter-modifier"

string BaseUrl = this.DecompositionUrl(out Url).BaseUrl;
string ServiceUrl = this.DecompositioUrl(out Url).ServiceUrl; 

我想使用这样的方法。

 public static string DecompositionUrl(out string Urlr)
    {
        // enter here  :
        BaseUrl = Urlr.Substring(0,40);
        ServiceUrl = Urlr.Substring(40,Urlr.Length);
    }

返回DecompositionUrl后,我想设置BaseUrlServiceUrl

2 个答案:

答案 0 :(得分:4)

您需要声明要从方法中返回的两个值的out参数:baseUrlserviceUrl。源url需要通过普通参数(而不是out)传递。

public static void DecompositionUrl(string url, out string baseUrl, out string serviceUrl)
{
    baseUrl = url.Substring(0, 40);
    serviceUrl = url.Substring(40);
}

然后您将像这样调用您的方法:

string url = "https://docs.microsoft.com/tr-tr/dotnet/csharp/language-reference/keywords/out-parameter-modifier"
DecompositionUrl(url, out var baseUrl, our var serviceUrl);
Console.WriteLine($"Base URL is {baseUrl} and service URL is {serviceUrl}.");

答案 1 :(得分:3)

C#7允许您返回类似这样的方法的结果“元组”

   public static (string, string) DecompositionUrl(string url)
    {
        var baseUrl = ...;
        var serviceUrl = ...;
        return (baseUrl, serviceUrl);
    }

然后您可以像这样使用它

(string baseUrl, string serviceUrl) = DecompositionUrl("https://docs.microsoft.com/tr-tr/dotnet/csharp/language-reference/keywords/out-parameter-modifier");

我认为这比使用out关键字要好,因为它可以更清楚地显示输入内容和输出内容。