微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

如何呼叫代表

如何解决如何呼叫代表

美好的一天,我对委托的工作方式很陌生,需要一些帮助,这是我目前的代码 这是我的主类中的代码

using System;
using System.Collections.Generic;
using System.Linq;

namespace PROG6211_Taks_1_Tarisai_Gonah_18028480
{

    class Program
    {

        public void notify(double exp)
        {
            Calculate cal1 = new Calculate();

            cal1.totalExpenses = cal1.totalExpense + (cal1.carpayMonth + cal1.repayMonth);

            if ((cal1.totalExpenses / cal1.grossIncome) * 100 > 75)
            {
                Console.WriteLine("Your expenses exceed 75% of gross Income");
            }

        }

        static void Main(string[] args)
        {
            Calculate cal2 = new Calculate();

            cal2.expenses = new cal2.expenses(notify);

             var mydelegate = new expenses(cal2.notify);

在我的主课中,我试图调用试图让委托运行,但我正在努力解决我无法为其创建方法的问题。 这是我的另一堂课:

public delegate void expenses(double totalExpenses);
public  void notify(expenses TotalExpenses)
{

    TotalExpenses(0);

    totalExpenses = totalExpense + (carpayMonth + repayMonth);

    if ((totalExpenses / grossIncome) * 100 > 75)
    {
        Console.WriteLine("Your expenses exceed 75% of gross Income");

    }

所以我创建了一个方法来执行我需要的功能我没有显示完整的代码,因为它的代码太多但是我没有问题,我的问题是让我的另一个类中的委托在我的主方法中运行.

我尝试使用这种结构:

MyClass myClass = new MyClass();

MyClass.delgatename object = new MyClass.delegatename(method);

myClass.methodinotherclass(object); 

这是我能最好的描述我的问题希望你明白:)

解决方法

如果可能,您可以在类之外声明委托类型。 有点像下面 -

public delegate void Expenses(double totalExpenses);
public class MyFamily
{
    public void ExpensesImplement(double t)
    {
        Console.WriteLine(t);
    }
}
public class MyOtherFamily
{
    public new void ImplementExpenses(double t)
    {
        Console.WriteLine(t);
    }
}
public class GFG
{
        // Main method
        static public void Main()
        {
            MyFamily mf = new MyFamily();
            MyOtherFamily mm = new MyOtherFamily();
            Expenses expenses = new Expenses(mf.ExpensesImplement);
            expenses += mm.ImplementExpenses;
            expenses(10);
       }
    }
}

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。