gpt4 book ai didi

c# - 委托(delegate) - 委托(delegate)返回类型是否也必须与其委托(delegate)的方法相匹配?

转载 作者:太空狗 更新时间:2023-10-29 22:14:16 25 4
gpt4 key购买 nike

我希望这听起来像是一个显而易见的问题,但是委托(delegate)返回类型是否也必须与其委托(delegate)的方法的返回类型相匹配?

EG,像这样:

public static void Save()
{
TS ts = new TS(SaveToDatabase);
}

public delegate void TS();

private static void SaveToDatabase()
{ }

这永远行不通的地方

public static void Save()
{
TS ts = new TS(SaveToDatabase);
}

public delegate string TS();

private static void SaveToDatabase()
{ }

最佳答案

是的,它必须返回相同的类型并具有相同的参数。换句话说,函数和委托(delegate)声明必须具有相同的签名。

例子:

    //Declare delegate (return double with double param)
public delegate double Squared(double x);

public class Circle
{
private double _radius;


public static double ValueTimesValue(double Value)
{
return Value * Value;
}

public double Area(Squared sqd)
{
return sqd(_radius) * Math.PI;
}

public void CircleCharacteristics()
{
Squared Sq = new Squared(ValueTimesValue);
}
}

编辑: 如果您看到示例代码,Squared Delegate 和 ValueTimesValue 函数具有相同的返回类型和参数。

关于c# - 委托(delegate) - 委托(delegate)返回类型是否也必须与其委托(delegate)的方法相匹配?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13802486/

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