C#在函数调用中使用类的返回值

时间:2015-10-22 12:15:18

标签: c# function call

我试图解决这个问题,但是我不知道如何将类的新实例的结果传递给函数调用,或者甚至是否可能。

如果我不想传递一个随机数,我必须先创建它:

int n = 0;
Random rnd = New Random();
int m = rnd.Next(0, n);

MyClass.MyFunction(MyValue1, m);

实际上,这是4行代码。然而,作为c#的新手,我已经看过很多并且想知道,如果有更短版本的话。一些伪代码:

MyClass.MyFunction(MyValue1, Random rnd = new Random() {rnd.Next(0, n); return});

这有可能吗?我以为我见过这样的东西却找不到任何关于它的东西。

2 个答案:

答案 0 :(得分:1)

您可以在Next

之后立即致电new Random()
MyClass.MyFunction(MyValue1, new Random().Next(0,n));

new Random()将创建Random的对象,然后您可以调用Next()。因此,可以在不需要存储Random之前将其称为内联。

答案 1 :(得分:0)

我只是把它留在这里

MyClass.MyFunction(MyValue1, ((Func<int>)(() =>
{
    int n = 0;
    var rnd = new Random();
    return rnd.Next(0, n);
}))());

P.S。:它编译并运作。

正如@crashmstr评论的那样,对Random来说,它实际上并不是一个好主意。对于单个随机值是可以的,但对于一系列随机数,您不希望每次都创建新实例,或者您的数字将变为not so random