您认为函数式编程的好处是什么?它们如何适用于今天的程序员?
函数式编程和OOP之间最大的区别是什么?
我想用Tupleclass来存储我程序中需要的2个整数信息(StartAddress,EndAddress).
但我发现Tuple项是ReadOnly,所以如果我需要为一个项设置一个值,我需要重新实例化一个元组.
这个设计决定背后的原因是什么?
我想知道是否有一个类的内置版本,Tuple其Items属性不是readonly,可以设置.
或者有人能为我提供这样的版本吗?
我正在寻找一个实现Tuple类的基本功能的解决方案,(Equals,GetHashCode)
我需要一个类来存储一个可变值.当在代码的不同部分之间共享此类的实例并且一个部分更改该对象内的值时,所有其他部分都会看到新值.
这个问题不是我怎么写的.这是任何人搜索:
public class ValueHolder<T> { public T Value { get; set; } }
Run Code Online (Sandbox Code Playgroud)
我的问题是,这个类是否存在于标准库的任何位置?这感觉就像它提供的许多小类中都包含的东西.
或者,是否有另一种方法可以实现我所需的结果而不会乱丢我的代码与小类?
更新/评论:
我对这个问题提出的否定性有点惊讶.
"这导致WTF数量很高!" "你正在重塑!"
重新发明是我明确提出的,以避免提出这个问题.如果标准库中已经存在某些内容,我可以使用它而不是编写新类.(只要收益超过成本.)
传递一个对象并允许它被修改的技术一直被使用.你有没有写过一个函数,它接受一个List来为该函数添加/删除值?那么事件处理程序(如Form.Closing)允许事件处理程序通过在event-args对象中设置一个值来改变正在进行的事件呢?
在我的例子中,对象只是一个具有单个bool值的类.它被传递到另一段代码中,以便允许该标志被提升或降低.您可能会说这应该是函数的返回值或ref参数,但我使用的框架允许将对象传递给处理程序(类似于ParameterizedThreadStart或Tag属性)所以我受限于我可以传球
"我想知道标准库是否已经有了这样做的类." 我心想."让我们找出来吧!"
我列出了包含int和string的元组,每次我在这个列表中添加新位置时,我在已经添加的元素中检查相同的字符串.一旦我看到相同的 - 目标是改变int(做+1).例如,如果我们有(3,box; 1,apple; 2,PC)并且我们需要添加"apple",那么我必须将现有的"1,apple"更改为"2,apple".但我不能这样做因为Item1返回错误"该属性没有setter".我的错误在哪里?谢谢.
string[] elements = s.Split(); // Contains all elements as strings.
List<Tuple<int, string>> elementsList = new List<Tuple<int, string>>();
var sortItems = elementsList.OrderBy(x => x.Item1);
for (int i = 0; i < elements.Length; i++)
{
foreach (var item in sortItems)
{
if (Equals(item.Item1, elements[i]))
{
item.Item1 += 1;
}
}
elementsList.Add(new Tuple<int, string>(1, elements[i]));
}
return elementsList;
Run Code Online (Sandbox Code Playgroud)