相关疑难解决方法(0)

最佳实践:从属性中抛出异常

何时从属性getter或setter中抛出异常是否合适?什么时候不合适?为什么?关于这个主题的外部文件的链接将是有帮助的...谷歌出乎意料地少了.

.net c# properties exception

102
推荐指数
3
解决办法
4万
查看次数

从属性设置器抛出什么异常?

我有一个字符串属性具有最大长度要求,因为数据链接到数据库.如果调用者尝试设置超过此长度的字符串,我应该抛出什么异常?

例如,这个C#代码:

public string MyProperty
{
    get
    {
        return _MyBackingField;
    }
    set
    {
        if (value.Length > 100)
            throw new FooException("MyProperty has a maximum length of 100.");

        _MyBackingField = value;
    }
}
Run Code Online (Sandbox Code Playgroud)

我考虑过ArgumentException,但这似乎不对.从技术上讲,它是一个功能 - MyProperty_set(string value)- 所以ArgumentException可以制作一个案例,但它不是作为消费者眼睛的一个功能被调用 - 它位于赋值运算符的右侧.

这个问题也可能扩展到包括在属性设置器中完成的各种数据验证,但我对上述情况特别感兴趣.

c# validation properties exception

49
推荐指数
5
解决办法
3万
查看次数

C#在setter方法上添加验证

我有一些我在C#中定义的变量:

public String firstName { get; set; }
public String lastName { get; set; }
public String organization { get; set; }
Run Code Online (Sandbox Code Playgroud)

我想要的是在尝试设置值时为这些方法添加验证.让我们说你要为firstName设置一个值,我应该通过thrue一个正则表达式来设置,否则应该抛出一个异常.这可能是用这种"短语法"构建的,还是我应该选择标准(如JAVA)getter和setter并在那里验证数据?

c# getter setter properties

8
推荐指数
2
解决办法
2万
查看次数

标签 统计

c# ×3

properties ×3

exception ×2

.net ×1

getter ×1

setter ×1

validation ×1