c#引用我的计算,而不是在分配浮点数时仅取其值
本文关键字:浮点数 分配 我的 引用 计算 | 更新日期: 2023-09-27 18:09:12
我有:
float f1 = 1;
float f5 = 10;
float fout = f1 * 2;
while (f1 * 2 < f5)
{
f1++;
}
浮点数"fout"的值为"f1 * 2"的简单计算值在我的项目中,计算更复杂,使用大约4个局部变量。在上面的例子中,我必须输入两次相同的计算:"f1 * 2",这是我试图避免的。
我知道我可以使用一个函数:
float f1 = 1;
float f5 = 10;
float fout = calc(f1);
while (calc(f1) < f5)
{
f1++;
}
FUNCTION:
float calc(float inn)
{
return inn * 2;
}
但是这也会看起来很难看,因为在我的实际项目中,我将不得不向函数传递4个局部变量,并且最终将创建大量只使用两次的小函数。
但是我可以这样做吗?
float f1 = 1;
float f5 = 10;
float fout = ref (f1 * 2);
while (fout < f5)
{
f1++;
}
使"4"引用我的计算,而不是仅仅取其值,因为它被分配。如果是,正确的语法是什么?
编辑:谢谢你:Spook和undermind。这就是我要找的:
float f1 = 1;
float f5 = 10;
Func<float> fout = () => f1 * 2;
while (fout() < f5)
{
f1++;
}
如果我理解正确的话,您可以简单地使用lambda。嗯,c风格语言缺少子函数…
float f1 = 1;
float f5 = 10;
Func<float> fout = () => f1 * 2;
while (fout() < f5)
{
f1++;
}
或者(根据您的需要):
float f1 = 1;
float f5 = 10;
Func<float, float> fout = (param) => param * 2;
while (fout(f1) < f5)
{
f1++;
}