相关疑难解决方法(0)

VS2017可以与CodeContracts一起使用吗?

我刚刚安装了新发布的Visual Studio 2017 Enterprise(RC).但是我无法使用Microsoft CodeContracts.我对使用VS2015的CodeContract没有任何问题.我错过了什么吗?

code-contracts visual-studio-2017

50
推荐指数
4
解决办法
1万
查看次数

C#:参数验证:null /空字符串

我不知道有多少次我不得不编写代码来验证字符串参数:

public RoomName(string name)
{
    if (string.IsNullOrEmpty(name))
    {
        throw new ArgumentException("Cannot be empty", "name");
    }
}
Run Code Online (Sandbox Code Playgroud)

反正有没有避免这个?是否有一些属性或设计合同机制来避免这种情况?有没有办法说:

public RoomName(NotNullOrEmptyString name)
{
Run Code Online (Sandbox Code Playgroud)

而不必实际创建该类型?

c# string argument-validation

17
推荐指数
2
解决办法
8365
查看次数

C#:声明函数永远不会返回null?

背景: 有这个开发人员原则"如果请求的项目不存在,我的函数应该返回null还是抛出异常?" 我不想在这里讨论.我决定为所有必须返回值的情况抛出异常,并且只有在(编程或逻辑)无效请求的情况下才会存在此值.

最后我的问题是: 我可以标记一个函数,以便编译器知道它永远不会返回null并警告任何检查返回值是否为空的人?

c# compiler-construction

10
推荐指数
1
解决办法
2909
查看次数

C#和可空标志/注释?

C#有Nullable注释吗?

例如在Java中

public @Nullable <T extends BaseJsonClass> T getModel(String saveKey, Class<T> type) {
Run Code Online (Sandbox Code Playgroud)

现在当开发人员试图打电话时

Object.getModel().someMethod()
Run Code Online (Sandbox Code Playgroud)

编译器会警告他们没有检查null.

我知道?C#中var名称末尾的标记,someObject?但问题是当在许多地方使用vars时,它可能是棘手/烦人/ JSON模型.

c# nullable

3
推荐指数
2
解决办法
2838
查看次数