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

本文关键字:返回值 函数调用 | 更新日期: 2023-09-27 18:18:52

我试图弄清楚,但我不知道如何传递一个类的新实例的结果到函数调用,或者如果这甚至是可能的。

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

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});

这是可能的吗?我想我见过类似的东西,但是找不到任何关于它的信息

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

可以在new Random()之后调用Next

MyClass.MyFunction(MyValue1, new Random().Next(0,n));

new Random()将创建Random的对象,并在其上可以调用Next()。所以可以调用它内联而不需要存储Random之前。

我把它留在这里

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

注::它可以编译并工作。

正如@crashmstr评论的那样,这实际上不是一个好主意,特别是对于Random。对于单个随机值是可以的,但对于一系列随机数,你不想每次都创建新的实例,否则你的数字会变得不那么随机。