我有一个方法,该方法可以创建一次从其他类调用的随机数。进行委托并将其指向该方法将调用该方法本身,并生成随机数。如果不创建新的随机数,我将无法访问该方法。我想用委托获取该方法的返回值。通过写它“ Console.WriteLine(some_kind_delegate);”给我路径“ Consoleapp8.class +方法”。
P.S,尽管当我使用委托与其他变量答案进行比较时,它是正确的。
在Visual Studio环境中的屏幕截图,其中有我的评论:https://www.dropbox.com/s/cx6858x5qen7k1p/dayum.PNG?dl=0
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
namespace ConsoleApp8
{
abstract class variklis
{
delegate int delegatas();
static int litrazas;
static void Main()
{
Console.WriteLine("serijinis bloko numeris: " + blokas.serijinis_bloko_numeris());
Console.WriteLine("variklio tipas: In-line " + blokas.vidus() + " cilindrai");
Console.WriteLine("stumokliu skaicius: " + stumokliai.stumokliuskaicius);
Console.WriteLine("stumokliu kodas: " + stumokliai.stumokliu_kodas());
Console.Write("galimas variklio litrazas siam automobiliui: ");
int.TryParse(Console.ReadLine(), out litrazas);
litrazui();
}
public static void litrazui()
{
string damm;
delegatas zeta;
zeta = blokas.litrazas;
Console.WriteLine(zeta);
if (zeta() <= litrazas)
{
damm = "variklis tinkamas siam automobiliui";
}
else
{
damm = "variklis netinkamas siam automobiliui";
}
Console.WriteLine(damm);
}
}
}
答案 0 :(得分:0)
问题是由于Console.WriteLine隐式将委托转换为字符串,即Consoleapp8.class+method
,相反,您需要调用函数并在其末尾附加括号。
Console.WriteLine(zeta());
并回答您评论中的问题。如果您需要存储从委托返回的整数,则可以通过添加括号来调用该函数,从而采用上述相同的原理。
int number = zeta();