gpt4 book ai didi

c# - 有没有办法将方法标记为确保 T 不为空?

转载 作者:太空狗 更新时间:2023-10-29 19:26:53 24 4
gpt4 key购买 nike

例如,如果我有一个定义为...的方法

T Create()
{
T t = Factory.Create<T>();

// ...

Assert.IsNotNull(t, "Some message.");
// -or-
if (t == null) throw new Exception("...");
// -or- anything that verifies that it is not null
}

...我正在从其他地方调用该方法...

void SomewhereElse()
{
T t = Create();
// >><<
}

...在>><< ,我知道(意思是我,写这篇文章的人)t保证不为空。有没有一种方法(可能是我尚未找到的属性)将方法标记为确保它返回或以其他方式传递出去的引用类型(可能是 out 参数)由内部逻辑保证不为空?

我不得不羞怯地承认 ReSharper 是我关心的主要原因,因为它突出显示了它认为可能导致 InvalidOperationException 的任何内容。或 NullReferenceException .我想要么它正在阅读我可以在我的方法上标记的东西,要么它只知道 Assert.IsNotNull ,简单的 bool 检查或其他一些东西将消除某些东西为 null 的可能性,并且它可以消除高亮。

有什么想法吗?我只是成为我的天哪-resharper-highlights-it-I-have-to-fix-it 疾病的受害者吗?

最佳答案

如果 ReSharper 是您关心的原因,那么您可以标记 Factory.Create<T>()用他们的方法 [NotNull]在他们的 web help 中描述的属性

关于c# - 有没有办法将方法标记为确保 T 不为空?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5317191/

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