小编Baj*_*k80的帖子

函数式编程中的对象 - 不变性

最近我一直在学习在Erlang中作为C和C#开发人员的长期编程.我对函数式编程很新.现在,我试图了解Scala等语言中的对象是如何工作的.我被告知OOP是关于使用其公共方法改变给定对象的状态.这些方法改变了公共财产和私人成员的状态.但现在我听说在函数式编程中,所有对象都应该是不可变的.好吧,我同意,一旦赋值变量(在给定函数中)应该保持指向同一个对象.但这种"不变性"是否意味着我无法使用公共方法更改给定对象的内部(属性,私有成员)?这使对象就像简单的数据容器一样.它提取了它们之外的所有功能.这使得对象更像C中的结构.这对我来说很奇怪.也许我错过了什么?是否有可能以旧式方式使用对象并仍将其视为函数式编程?

c# oop erlang functional-programming scala

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

如何将当前类类型传递给<T>?

我有一个属性类(继承属性),在其中我有一个调用泛型方法的方法:

memberInfo.GetCustomAttribute<T>();  
Run Code Online (Sandbox Code Playgroud)

如何将当前类类型传递给T?我不想在内部硬类型,因为它可能被继承,然后它将无法工作.

c# generics system.reflection

0
推荐指数
1
解决办法
71
查看次数