2010-12-13 27 views
0

如何是最好做到以下 预订地址是一个结构把值可空变量

BookingAddress? retval= null; 

这才是我的逻辑和IHAVE以下

BookingAddress address = new BookingAddress(reelinfo.LineID, reelinfo.McID); 
retval = address; 

有没有把更多的好方法retVal需要的值?

+0

比'retval'更有意义的名字。我知道它代表“返回值”,但您要返回预订地址,而不是返回值。 – jason 2010-12-13 15:18:12

+0

我喜欢用一个名为'result'的变量来保存返回值。在短的函数中,它具有足够的含义,尤其是因为它的类型已经是'BookingAddress' – CodesInChaos 2010-12-13 15:24:04

+0

旁注:您可能想考虑使'BookingAddress'类 – CodesInChaos 2010-12-13 15:58:34

回答

2

什么刚:

retval = new BookingAddress(...); 
3

为什么不干脆:

BookingAddress? retval = new BookingAddress(reelinfo.LineID, reelinfo.McID); 

非空值类型隐式转换为相应的空值类型。

BookingAddress? retval= null; 
if(...) 
    retval = new BookingAddress(reelinfo.LineID, reelinfo.McID); 
+0

我只想返回空对象,如果我没有输入我的逻辑代码。 – 2010-12-13 15:19:32

+0

@nightwalker这没有什么区别。你总是可以将'T'分配给'Nullable ' – CodesInChaos 2010-12-13 15:25:16

+0

@Pabuc我不明白你想要什么。如果我不声明retval,因为它不能为空。当然,我可以重写函数来使用'return null'和'return new BookAddress(...)',但这不能回答OP的问题。 – CodesInChaos 2010-12-13 15:57:21

1

这就是你需要:

return new BookingAddress(reelinfo.LineID, reelinfo.McID); 

你并不真的需要retval变量,如果你不assigining它的价值和其返回之间用它做任何事情。