标签: func

Func委托与ref变量

public object MethodName(ref float y)
{
//method
}
Run Code Online (Sandbox Code Playgroud)

如何为此方法定义Func委托?

c# delegates reference func c#-3.0

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

去lang数组和切片数据类型

我是Go语言的新手.我发现自己arrayslice数据类型混淆了.

从Go docs,数组描述如下:

数组在Go和C中的工作方式有很大差异.在Go中,

  • 数组是值.将一个数组分配给另一个数组会复制所有元素.
  • 特别是,如果将数组传递给函数,它将接收数组的副本,而不是指向它的指针.
  • 数组的大小是其类型的一部分.类型[10] int和[20] int是不同的.

功能:

与C系列中的所有语言一样,Go中的所有内容都按值传递.也就是说,函数总是获取正在传递的东西的副本,就好像有一个赋值语句将值赋给参数.例如,将int值传递给函数会生成int的副本,并且传递指针值会生成指针的副本,但不会生成它指向的数据.

sort.Ints(arrayValue)当我将其声明为数组而不是切片时,为什么要修改传递的变量?

var av = []int{1,5,2,3,7}

fmt.Println(av)
sort.Ints(av)
fmt.Println(av)
return
Run Code Online (Sandbox Code Playgroud)

产量

[1 5 2 3 7]
[1 2 3 5 7]
Run Code Online (Sandbox Code Playgroud)

arrays func pass-by-value go slice

48
推荐指数
4
解决办法
3万
查看次数

去功能图

我有一个定义了函数的Go程序.我还有一张应该有每个功能键的地图.我怎样才能做到这一点?

我试过这个,但这不起作用.

func a(param string) {

}

m := map[string] func {
    'a_func': a,
}

for key, value := range m {
   if key == 'a_func' {
    value(param) 
   }
}

map func key-value go

46
推荐指数
4
解决办法
3万
查看次数

有人可以解释一下C#"Func <T,T>"的作用吗?

我正在阅读Pro MVC 2书,并且有一个为HtmlHelper类创建扩展方法的示例.

这里是代码示例:

public static MvcHtmlString PageLinks(this HtmlHelper html, PagingInfo pagingInfo, Func<int,string> pageUrl)
{
    //Magic here.
}
Run Code Online (Sandbox Code Playgroud)

以下是一个示例用法:

[Test]
public void Can_Generate_Links_To_Other_Pages()
{
    //Arrange: We're going to extend the Html helper class.
    //It doesn't matter if the variable we use is null            
    HtmlHelper html = null;

    PagingInfo pagingInfo = PagingInfo(){
        CurrentPage = 2,
        TotalItems = 28,
        ItemsPerPage = 10
    };

    Func<int, String> pageUrl = i => "Page" + i;

    //Act: Here's how it should format the links.
    MvcHtmlString result …
Run Code Online (Sandbox Code Playgroud)

c# func

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

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

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

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

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

.net c# action function func

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

void Func不带参数

有一些类似的问题,但不完全像我的.

对于没有返回值(即无效)且没有参数的函数,是否存在Func等价物?

相关的问题是Func没有返回任何东西? 但这并不适用于无效类型.

(我需要它来从我的视图模型请求操作到我的视图).

c# wpf func mvvm

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

如何使用泛型类型参数传入func?

我喜欢将泛型类型转换器函数发送到方法,但我无法弄清楚如何做到这一点.

这是解释我想要实现的内容的无效语法,问题是我不知道如何与我的func一起指定泛型类型:

public void SomeUtility(Func<T><object,T> converter)
{
    var myType = converter<MyType>("foo");
}
Run Code Online (Sandbox Code Playgroud)

编辑(参见我在Lawrence评论中的讨论):通过"泛型转换器"我的意思是我想传入一个可以转换为任何强类型<T>(不是对象)的转换器,所以我的下一行方法可能是:

var myOtherType = converter<MyOtherType>("foo");
Run Code Online (Sandbox Code Playgroud)

我想作为参数传递的委托看起来像这样:

private delegate TOutput myConverterDelegate<TOutput>(object objectToConvert);
Run Code Online (Sandbox Code Playgroud)

这更像是一种语法/ C#探索,为了完成工作,我可能会使用一个接口,但我希望这可以用func/delegate来实现.

c# func

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

Func <>委托有什么好处?

对不起,如果这是基本的,但我试图接受.Net 3.5.

问题:Func <>有什么好处,它有5个重载吗?从它的外观来看,我仍然可以自己创建一个类似的delgate,MyFunc <>具有5个重载甚至更多.

例如:public delegate TResult MyFunc<TResult>()和各种超载的组合......

当我试图理解Func <>委托并且遇到以下情况时,想到了这个想法:

Func<int,int> myDelegate = (y) => IsComposite(10);
Run Code Online (Sandbox Code Playgroud)

这意味着一个委托有一个int类型的参数和一个int类型的返回类型.有五种变体(如果你通过intellisense查看重载).所以我猜我们可以有一个没有返回类型的委托?

所以我有理由说Func <>不是很好,只是我们可以使用的.Net框架中的一个例子,如果需要,创建自定义"func <>"代表以满足我们自己的需求?

谢谢,

lambda delegates expression func

25
推荐指数
4
解决办法
1万
查看次数

如何使用out参数声明泛型委托

Func<a, out b, bool>,只是不编译,如何声明我想要第二个参数是out一个?

我想这样使用它:

 public class Foo()
 {
     public Func<a, out b, bool> DetectMethod;
 }
Run Code Online (Sandbox Code Playgroud)

.net c# generics out func

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

C#中实际的lambda类型是什么?

我读到C#lambdas可以被非法转换为Action或Func,但是lambda不能直接执行定义lambda函数并立即执行它 例如:

int n = (()=>5)(); //doesn't work
int n = ((Func<int>)(()=>5))(); //works
Run Code Online (Sandbox Code Playgroud)

那么lambda的实际类型是什么?为什么不能直接调用它?是因为C#类型系统比Haskell或Scala系统"弱"吗?

c# lambda func

24
推荐指数
2
解决办法
2148
查看次数

标签 统计

func ×10

c# ×7

.net ×2

delegates ×2

go ×2

lambda ×2

action ×1

arrays ×1

c#-3.0 ×1

expression ×1

function ×1

generics ×1

key-value ×1

map ×1

mvvm ×1

out ×1

pass-by-value ×1

reference ×1

slice ×1

wpf ×1