我只是喜欢 F# 来完成适合函数式编程的任务。我将 C# 用于命令式 OO。
但是,每当切换到 C# 时,离开 F# 的非冗长语法和类型推断会变得越来越痛苦。
有谁知道是否有一些东西可以用于非冗长的命令式编程,因为语法和类型推断与命令式和函数式并没有真正的关系。
最佳答案
我不清楚您不喜欢 F# 的什么地方。虽然它支持函数式编程风格,但它也在许多方面改进了 .NET 中的命令式编程。我想不出有任何 C# 代码不能被功能相同且更短的 F# 代码替代(不安全 代码是我想到的唯一异常(exception))。
甚至是表示例如数据库记录的可变类型
class Employee {
public Employee(string firstName, string lastName, int age) {
this.FirstName = firstName;
this.LastName = lastName;
this.Age = age;
}
public string FirstName { get; set; }
public string LastName { get; set; }
public int Age { get; set; }
}
在 F# 中可以简化为以下内容:
type Employee =
{ mutable FirstName : string
mutable LastName : string
mutable Age : int }
这应该是 C# 的拿手好戏。
当您遇到 F# 缺少的功能时,通常会建议有更好的方法。这是停下来分析典型命令式方法缺点的好时机。
的确,F# 的最大优势可能在于它是一种多范式语言。您可以使用 OO 来构建您的项目和函数式编程 "in the small"组织您的模块——没有单一的风格必须占主导地位。它只会增加您的工具箱的大小。
如果有特定任务/概念在移植到 F# 时遇到问题,您应该提及它们以便其他人可以提供解决方案。
关于c# - 对于 .NET 和命令式 OO,是否有比 C# 更简洁(如在 F# 中)的替代方案?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9326721/