C# 在函数调用中使用 class 中的 return 值
C# use return value from class in function call
我试图弄明白,但我不知道如何将 class 的新实例的结果传递给函数调用,或者这是否可能。
如果我不想传递随机数,我必须先创建它:
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});
这有可能吗?我以为我见过类似的东西,但找不到任何相关信息。
您可以在 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);
}))());
P.S.: 它编译并工作。
正如@crashmstr 评论的那样,这实际上不是专门针对 Random
的好主意。对于单个随机值是可以的,但是对于一系列随机数,您不想每次都创建新实例,否则您的数字将变为 not so random.
我试图弄明白,但我不知道如何将 class 的新实例的结果传递给函数调用,或者这是否可能。
如果我不想传递随机数,我必须先创建它:
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});
这有可能吗?我以为我见过类似的东西,但找不到任何相关信息。
您可以在 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);
}))());
P.S.: 它编译并工作。
正如@crashmstr 评论的那样,这实际上不是专门针对 Random
的好主意。对于单个随机值是可以的,但是对于一系列随机数,您不想每次都创建新实例,否则您的数字将变为 not so random.