gpt4 book ai didi

c# - 通过委托(delegate)的实例调用带有可选参数的方法

转载 作者:太空宇宙 更新时间:2023-11-03 18:04:14 26 4
gpt4 key购买 nike

我们知道我们可以通过委托(delegate)来引用方法,也可以通过调用委托(delegate)的实例来调用方法。

我想通过调用委托(delegate)实例来调用一个方法(它有一个可选参数)。

我的代码如下

using System;

namespace Testing_Delegates
{
class Program
{
delegate void Order(string abc);
public static void ReverseOrder(string rev = "Optional Param")
{
char[] elements = rev.ToCharArray();
char[] reversed = new char[rev.Length];
for(int i = 0; i < rev.Length; i++)
{
reversed[i] = elements[rev.Length - (i+1)];
}
foreach(char element in reversed)
{
Console.Write(element);
}
}


static void Main(string[] args)
{
Order changeorder = new Order(ReverseOrder);
changeorder();//------Here is error------------
}
}
}

错误是

There is no argument given that corresponds to the required formal parameter 'abc' of 'Program.Order'

最佳答案

你不能那样做。委托(delegate)签名 只知道它自己的参数(就像一个接口(interface))而不是委托(delegate)实现。如果不想重复代码,可以让委托(delegate)签名接受可选字符串,并从实际方法实现中删除可选字符串。

关于c# - 通过委托(delegate)的实例调用带有可选参数的方法,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39037798/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com