其他分享
首页 > 其他分享> > 我应该使用Guid和Guid.Empty还是可以为空的Guid?

我应该使用Guid和Guid.Empty还是可以为空的Guid?

作者:互联网

我有某些情况(例如,一个自定义类来保存Sql参数),其中可能需要或可能不需要变量.传统上,我总是将这些类型定义为Guid?并在使用前使用myGuid.HasValue检查有效值.

当然,在实践中,我也可以使用常规Guid并使用myGuid == Guid.Empty执行有效值的检查.

为了提高可读性,我更喜欢第一次使用,因为它感觉更干净,但是如果有人可以建议一种方法是否比另一种更好(更快,更快或更正确),我将不胜感激.

解决方法:

如果参数在T-Sql端可以为null,那么我认为Guid吗?更自然.特别是当与ADO.NET参数化查询一起使用时,可空类型的值为null时,它们可以方便地转换为DBNull.Value.如果要使用Guid.Empty表示null,则需要检查该条件并将DBNull.Value显式传递给命令/查询.例如.:

command.Parameters.AddWithValue("@guid", myNullableGuid)     

command.Parameters.AddWithValue("@guid", 
    myGuid == Guid.Empty ? DBNull.Value : myGuid)    

否则,这两种选择之间实际上没有性能差异.

标签:is-empty,nullable,language-features,c
来源: https://codeday.me/bug/20191030/1969463.html