相关疑难解决方法(0)

Func <string,string>和delegate有什么区别?

我看到代表有两种形式:

A. Func<string, string> convertMethod = lambda 

B. public delegate string convertMethod(string value);
Run Code Online (Sandbox Code Playgroud)

我不确定这两者之间究竟有什么区别.他们都是代表吗?我相信第一个会使用lambda,第二个必须有一个方法来实际执行工作.我也可能感到困惑.

c# asp.net lambda delegates

68
推荐指数
4
解决办法
2万
查看次数

Action/Func vs Methods,有什么意义?

我知道如何使用ActionFunc在.NET中,但每次我开始,使用我调用的常规旧方法可以实现完全相同的解决方案.

这排除了当一个Action或者Func被用作我无法控制的东西的参数时,比如LINQ .Where.

基本上我的问题是......为什么这些存在?他们给了我什么额外的和新的一个简单的方法不?

.net c# action function func

31
推荐指数
3
解决办法
1万
查看次数

代表与行动,Cunc中的Func

这似乎是一个愚蠢的问题,但这只是出于好奇心的缘故.

我们在C#中有两个特定的已经定义的委托:

Action封装了任何带有0个或更多参数的"void"方法.
Func封装了返回特定值类型并接受0个或更多参数的任何方法.

我的问题是:在哪些情况下建议定义自定义委托?
你为什么要这么做?

提前致谢

c# delegates

22
推荐指数
1
解决办法
2万
查看次数

了解Lambda表达式和委托

我一直试图解决这个问题很长一段时间(阅读在线博客和关键词),但到目前为止还没有成功.

代表们是什么?什么是Lambda表达式?两者的优点和缺点?何时使用其中一种可能的最佳做法?

提前致谢.

c# lambda delegates .net-3.5

14
推荐指数
3
解决办法
2万
查看次数

在方法签名中使用委托和使用Func <T>/Action <T>有什么区别?

我一直试图在C#中找到代表,但我似乎没有明白使用它们.以下是来自代表MSDN页面的一些稍微重建的代码:

using System;
using System.Collections;

namespace Delegates
{
    // Describes a book in the book list:
    public struct Book
    {
        public string Title;        // Title of the book.
        public string Author;       // Author of the book.
        public decimal Price;       // Price of the book.
        public bool Paperback;      // Is it paperback?

        public Book(string title, string author, decimal price, bool paperBack)
        {
            Title = title;
            Author = author;
            Price = price;
            Paperback = paperBack;
        }
    }

    // Declare a …
Run Code Online (Sandbox Code Playgroud)

c# delegates

13
推荐指数
2
解决办法
6872
查看次数

使用Func <>(或Action <>)或创建自己的委托?

例如,哪一个在方法中的参数类型(与LINQ无关)中更好.显然Func更好,因为它更简单,更具描述性,如果每个人都在使用它,一切都将变得兼容(好).但是我注意到Microsoft在某些库中使用自己的委托,例如事件处理程序.那么,它们中的任何一个的优点和缺点是什么?我应该什么时候使用它?

编辑:

  • 显然Func <>仅在3.5中可用,所以这可能是我看到非Func代表的主要原因.任何其他不使用Func的原因?(例如:是来自.NET4)

  • 同样的问题也适用于Action <>

.net c# delegates coding-style func

12
推荐指数
1
解决办法
1044
查看次数

如何声明返回相同类型的Func委托的Func委托?

我想写一个方法,它做了一些工作,最后返回另一个方法与原始方法相同的签名.这个想法是依次处理一个字节流,而不是进入递归.通过这样称呼它:

MyDelegate executeMethod = handleFirstByte //What form should be MyDelegate?

foreach (Byte myByte in Bytes)
{
    executeMethod = executeMethod(myByte); //does stuff on byte and returns the method to handle the following byte
}
Run Code Online (Sandbox Code Playgroud)

要切换方法,我想将它们分配给Func委托.但我遇到的问题是,这导致递归声明而没有终止...

Func<byte, Func<byte, <Func<byte, etc... >>>
Run Code Online (Sandbox Code Playgroud)

我不知何故在这里迷路了.我怎么能绕过那个?

c# delegates func

12
推荐指数
1
解决办法
379
查看次数

对于Action <>和/或Func <>,c#中的typedef等价

谷歌搜索后看起来并不乐观,但我想知道在使用Action<T>Func<in T, out TResult>在C#中是否有某种混叠或类型定义的方法?

我已经在c#中看到了typedef的等价,它说在一个编译范围内你可以在using某些情况下使用该构造,但就我所知,这似乎并不适用于Action's和Funcs.

我想要这样做的原因是我想要一个动作用作多个函数的参数,如果我在某个时间点决定改变动作,那么很多地方都要改变它们作为参数类型和作为变量类型.

?typedef? MyAction  Action<int, int>;

public static SomeFunc(WindowClass window, int number, MyAction callbackAction) {
   ...
   SomeOtherFunc(callbackAction);
   ...
}

// In another file/class/...
private MyAction theCallback;

public static SomeOtherFunc(MyAction callbackAction) {
    theCallback = callbackAction;
}
Run Code Online (Sandbox Code Playgroud)

是否有一些构造要使用,它可以定义MyAction代码段中指示的?

c# delegates types

7
推荐指数
2
解决办法
3144
查看次数

引用变量中的函数?

说我有一个功能.我希望在变量中添加对此函数的引用.

所以我可以从变量'bar'调用函数'foo(bool foobar)',好像它是一个函数.例如.'巴(foobar的)'.

怎么样?

c# variables types reference function

6
推荐指数
1
解决办法
2万
查看次数