在C#中从用户获取输入的方法

时间:2017-04-01 11:34:55

标签: c# methods pass-by-reference

我正在从C ++切换到C#,我正在尝试学习这些方法。你能帮我创建一个方法,将2个变量作为用户的输入吗?在C ++中,只需要创建一个void方法并在变量名称之前添加&就可以了:void Input( int &a, int &b)这样可以保存主函数中值的任何变化。有没有办法在C#中做到这一点?

3 个答案:

答案 0 :(得分:2)

在C#中,您有两个C ++ 10.10.10.10(tcp/443) : Some SSL Vulnerability : Medium : Patched选项:

  • 10.10.10.11(tcp/888) : Some RCE Vulnerability : High : Not Patched参数 - 这些参数与C ++参考参数具有相同的功能,并且
  • Critical, High, Medium, Low参数 - 这些参数允许从方法传回数据,但不允许传入方法。

在您的情况下,T &x更合适,因为它允许您传递之前未分配的变量:

ref

您可以这样调用此方法:

out

请注意,与C ++不同,其中引用是自动引用,C#要求您使用关键字out标记它。

答案 1 :(得分:1)

您可以使用ref (C# Reference)实现此目的。这等于C ++&引用。

一个例子:

class RefExample
{
    static void Method(ref int i)
    {
        // The following statement would cause a compiler error if i
        // were boxed as an object.
        i = i + 44;
    }

    static void Main()
    {
        int val = 1;
        Method(ref val);
        Console.WriteLine(val);

        // Output: 45
    }
}

值得一提的是,在C#中使用ref应该是非常罕见的,与C ++不同。请参阅Jon Skeet's有关参数传递的文章。

答案 2 :(得分:0)

在C#中,您可以 here 通过参考传递参数。所以你可以定义你的方法:

ref

也使用int a = 0; int b = 0; Input(ref a, ref b); // now a = 14 and b = 25关键字调用该方法:

// Check if [measurement] text's had a numeric pattern
// followed by any [conversion unit of cm]
var sMeasurementText = $.trim($('.fc_img_tooltip_desc').text());
var sMeasurementPattern = /^(?:\d+x\d+cm)/i;
console.log(sMeasurementText.match(sMeasurementPattern));

你明确地提到了引用传递(但优点是从语法上来说很明显这是传递引用)。