在变量中引用函数?

问题描述 投票:0回答:4

假设我有一个函数。我希望在变量中添加对此函数的引用。

所以我可以从变量“bar”调用函数“foo(bool foobar)”,就好像它是一个函数一样。例如。 '酒吧(foobar)'。

如何?

c# function variables reference types
4个回答
23
投票

听起来您想将

Func
保存到变量以供以后使用。 看一下示例这里

using System;

public class GenericFunc
{
   public static void Main()
   {
      // Instantiate delegate to reference UppercaseString method
      Func<string, string> convertMethod = UppercaseString;
      string name = "Dakota";
      // Use delegate instance to call UppercaseString method
      Console.WriteLine(convertMethod(name));
   }

   private static string UppercaseString(string inputString)
   {
      return inputString.ToUpper();
   }
}

查看方法

UppercaseString
如何保存到名为
convertMethod
的变量中,稍后可以调用该变量:
convertMethod(name)


2
投票

使用代表

    void Foo(bool foobar)
    {
/* method implementation */
    }

使用

Action
委托

Public Action<bool> Bar;
Bar = Foo;

调用该函数;

bool foobar = true;
Bar(foobar);

1
投票

您需要知道函数的签名,并创建一个委托

有现成的委托 用于返回值的函数用于具有 void 返回类型的函数。前面的两个链接都指向最多可以接受 15 个左右类型参数的泛型类型(因此可以用于接受这么多参数的函数)。

如果您打算在大于本地范围的范围内使用对函数的引用,您可以考虑定义自己的自定义委托。但大多数时候,

Action
Func
做得很好。

更新:

看看这个问题,了解是否定义自己的委托。


1
投票

您在寻找代表吗?

© www.soinside.com 2019 - 2024. All rights reserved.