gpt4 book ai didi

f# - F# 中的资源管理

转载 作者:行者123 更新时间:2023-12-02 05:58:15 26 4
gpt4 key购买 nike

我知道我需要使用使用键来处理资源:

use db = new dbml.MobileDataContext(connectionString)
for rows in db.Item do
....

但我想创建返回数据库连接的函数:

let getConnection(connectionString) =
use db = new dbml.MobileDataContext(connectionString)
db.ExecuteCommand(....) |> ignore
db

并在我的代码中使用这个函数:

use db = getConnection(connectionString)      
for rows in db.Item do
....

在这种情况下,我是否需要两次使用 use-关键字:在函数中和在函数调用中?

最佳答案

您应该只在外部函数中使用use。如果您在 getConnection 中使用它,那么您的上下文将在从 getConnection 返回时被释放,因此当您想要使用它时它已经被释放在外部函数中。作为一般规则,如果您在函数中处理一个值,则不得返回它。

关于f# - F# 中的资源管理,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/40094170/

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