我有一个带有以下签名的方法:
public Guid FindTermIDFromCustomProperty()
{
// Logic here to find an item and return the guid
}
Run Code Online (Sandbox Code Playgroud)
我的问题是,如果在函数中没有找到任何项目,那么将不会返回GUID - 这不用说了!但有没有办法返回一些平淡的GUID?
更好的是,我可以采用更通用的方法,不仅仅是针对GUID,而且通常在我返回强类型时?我真的不想将对象用作返回类型,必须有更好的方法.
提前致谢.
要回答你的第一个问题,你可以使用Guid.Empty,它返回一个保证全为零的guid.
至于你的第二个问题,一种方法是返回一个bool并使用out参数作为参数,bool指示你是否有值.不是每个人都喜欢使用参数.
public bool FindTermIDFromCustomProperty(out Guid termId)
Run Code Online (Sandbox Code Playgroud)
你可以返回一个可以为空的Guid,所以如果找不到任何项,你将返回null
public System.Nullable<Guid> FindTermIDFromCustomProperty()
{
// Logic here to find an item and return the guid
if (!found)
{
return null;
}
}
Run Code Online (Sandbox Code Playgroud)
可空类型适用于结构.
引用类型已经可以设置为null.
如果您使用的是.NET 2.0或更高版本,则可以返回可为空的类型.
public Guid? FindTermIDFromCustomProperty()
{
// Logic here to find an item and return the guid
else
return null;
}
var guid = FindTermIDFromCustomProperty();
if (guid.HasValue) // or "if (guid != null)"
DoSomethingWith(guid.Value);
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
2125 次 |
| 最近记录: |