F# 属性不显示值
我在类中定义了一个属性,如:F# 属性不显示值,f#,F#,我在类中定义了一个属性,如: type Customer() = let mutable _lastName = String.Empty member val LastName = _lastName with get 在QueryData方法中,我给_lastName赋值: member self.QueryData () = // CODE let addressData = bp.GetStructure("PE_PER
type Customer() =
let mutable _lastName = String.Empty
member val LastName = _lastName with get
在QueryData方法中,我给_lastName赋值:
member self.QueryData () =
// CODE
let addressData = bp.GetStructure("PE_PERSONALDATA")
_lastName <- addressData.GetString("LASTNAME")
null
| RfcCommunication ex ->
let basedComm = ex :> Exception
basedComm
| RfcLogon ex ->
let basedLogon = ex :> Exception
basedLogon
| RfcAbapRuntime ex ->
let basedAbap = ex :> Exception
basedAbap
member self.QueryData()=
//代码
让addressData=bp.GetStructure(“PE_PERSONALDATA”)
_姓氏
let basedComm=ex:>异常
基线毫米
|RfcLogon ex->
let basedLogon=ex:>异常
basedLogon
|RfcAbapRuntime ex->
让basedAbap=ex:>异常
basedAbap
在主函数中,我创建了Customer()的实例,并读取LastName属性:
[<EntryPoint>]
let main argv =
let customer = CustomerBapi.Customer()
let ex = customer.QueryData()
if ex <> null then printfn "%s" ex.Message
printfn "%s" customer.LastName
[]
让主argv=
让customer=CustomerBapi.customer()
设ex=customer.QueryData()
如果ex null,则打印Fn“%s”ex.消息
printfn“%s”customer.LastName
结果是空字符串。我试着调试程序,发现_lastName不是空的
为什么LastName属性为空?您的属性应如下所示:
member this.LastName with get () = _lastName
您正在使用的属性类型将\u lastName
作为值传递给初始化它
解释来自: 保存属性数据的私有值称为备份 商店。要让编译器自动创建备份存储, 使用关键字member val,省略自标识符,然后提供 表达式初始化属性。如果该财产是 可变,包括get和set。例如,下面的类类型 包括两个自动实现的属性。不动产1是 只读,并初始化为提供给主 构造函数,而Property2是初始化为 空字符串:
您的财产应如下所示:
member this.LastName with get () = _lastName
您正在使用的属性类型将\u lastName
作为值传递给初始化它
解释来自: 保存属性数据的私有值称为备份 商店。要让编译器自动创建备份存储, 使用关键字member val,省略自标识符,然后提供 表达式初始化属性。如果该财产是 可变,包括get和set。例如,下面的类类型 包括两个自动实现的属性。不动产1是 只读,并初始化为提供给主 构造函数,而Property2是初始化为 空字符串: