相关疑难解决方法(0)

C#:如何实现和使用NotNull和CanBeNull属性

我想让程序员和我自己知道一个方法不需要null,如果你确实发送null它,结果将不会很好.

有一个NotNullAttributeCanBeNullAttributeLokad共享库,在Lokad.Quality命名空间.

但是这有什么作用呢?我查看了这两个属性的源代码,它看起来像这样:

[AttributeUsage(AttributeTargets.Method | AttributeTargets.Parameter |
                AttributeTargets.Property | AttributeTargets.Delegate |
                AttributeTargets.Field, AllowMultiple = false, Inherited = true)]
[NoCodeCoverage]
public sealed class NotNullAttribute : Attribute
{
}

[AttributeUsage(AttributeTargets.Method | AttributeTargets.Parameter |
                AttributeTargets.Property | AttributeTargets.Delegate |
                AttributeTargets.Field, AllowMultiple = false, Inherited = true)]
[NoCodeCoverage]
public sealed class CanBeNullAttribute : Attribute
{
}
Run Code Online (Sandbox Code Playgroud)

继承自的两个空类Attribute.它们是如何使用的?你需要查找xml文档并知道它在那里吗?因为我试图制作我自己的属性副本并使用Lokad版本,但是当我尝试直接发送null时,我没有收到任何消息.既不是来自ReSharper也不是来自VS. 实际上我有点期待.但他们是如何使用的呢?如果我尝试发送一些空的东西,我可以以某种方式让VS为我生成警告吗?或者它只是在某种测试框架中使用?要么?

c# null attributes

40
推荐指数
3
解决办法
6万
查看次数

如何在C#中显示方法永远不会返回null(按合同设计)

我有一个永远不会返回null对象的方法.我想说清楚,以便我的API用户不必编写如下代码:

if(Getxyz() != null)
{
  // do stuff
}
Run Code Online (Sandbox Code Playgroud)

我该如何展示这个意图?

c# design-by-contract

9
推荐指数
2
解决办法
2233
查看次数

标签 统计

c# ×2

attributes ×1

design-by-contract ×1

null ×1