gpt4 book ai didi

c# - 我应该使用 Guid 和 Guid.Empty 还是可以为 null 的 Guid?

转载 作者:行者123 更新时间:2023-11-30 15:33:10 26 4
gpt4 key购买 nike

我有某些场景(例如,一个自定义类来保存 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)

除此之外,这两个备选方案之间几乎没有性能差异。

关于c# - 我应该使用 Guid 和 Guid.Empty 还是可以为 null 的 Guid?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17723246/

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