gpt4 book ai didi

c# - Action 给变量赋值

转载 作者:太空宇宙 更新时间:2023-11-03 20:05:10 27 4
gpt4 key购买 nike

我有一个 Action

Action<string> removeTitle = source => { source = RemoveTitle(source); };

我调用的

string name = "MR JOHN DOE"
removeTitle(name);

但不改变变量name

VS(可能是 Resharper)在 lambda 分隔符之后为 source 说“分配的值未在任何执行路径中使用”。

我在这里做错了什么?

最佳答案

字符串是不可变的.. 所以你的引用是在 lambda 的范围内重新创建的。这是一个 similar issue to this question .

您需要通过 Func<T1, T2> 返回它委托(delegate)如果你想修改它,但你不能使用refout (如该问题中所建议的那样)除非您创建自己的委托(delegate)类型(注意:我已通过方法分组将其缩短):

Func<string, string> removeTitle = RemoveTitle;

// ...
name = removeTitle(name);

关于c# - Action<T> 给变量赋值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24028506/

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