可以打印代表内容吗?

时间:2018-12-02 23:50:42

标签: c# class delegates return

我有一个方法,该方法可以创建一次从其他类调用的随机数。进行委托并将其指向该方法将调用该方法本身,并生成随机数。如果不创建新的随机数,我将无法访问该方法。我想用委托获取该方法的返回值。通过写它“ 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);
            }
        }
    }

1 个答案:

答案 0 :(得分:0)

问题是由于Console.WriteLine隐式将委托转换为字符串,即Consoleapp8.class+method,相反,您需要调用函数并在其末尾附加括号。

Console.WriteLine(zeta());

并回答您评论中的问题。如果您需要存储从委托返回的整数,则可以通过添加括号来调用该函数,从而采用上述相同的原理。

int number = zeta();