我正在从C ++切换到C#,我正在尝试学习这些方法。你能帮我创建一个方法,将2个变量作为用户的输入吗?在C ++中,只需要创建一个void方法并在变量名称之前添加&
就可以了:void Input( int &a, int &b)
这样可以保存主函数中值的任何变化。有没有办法在C#中做到这一点?
答案 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));
你明确地提到了引用传递(但优点是从语法上来说很明显这是传递引用)。