如何在条件为真时阻止创建类的实例。C#

卢潘顿

我有类Pos:

public class Pos
{
    int x;
    int y;
    public int X
    {
        get
        {
            return x;
        }
        set
        {
            try
            {
                if (value == 3)
                {
                    x = value;                                               
                }                    
            }
            catch
            {
                throw new ArgumentException();
            }
        }
    }
    public int Y { get; set; }
    public Pos(int x, int y)
    {
        X = x;
        Y = y;
    }
}

我创建了一个实例,X = 0。也就是说,据我所知,在 value = 3 -> x = 0 和构造函数 X = 0 的情况下,然后创建一个类的实例。当 x 属性设置器失败时,如何防止创建类的实例?我将创建一个不应包含“错误”对象的列表。

埃里克·利珀特

我很难理解这段代码应该做什么以及问题与它有什么关系,但我想也许你在问“我如何验证属性设置器参数的正确性?”

遵循这个模式:

// Class names should be words, not abbrvtns like "Pos"
public class Position
{
  private int x;
  private bool IsValidX(int possibleX)
  {
    // Here return true if possibleX is valid, false otherwise
  }
  public int X 
  { 
    get { return this.x; } 
    set 
    {
      if (!IsValidX(value))
        throw new ArgumentException("explanation here", "value");
      this.x = value;
    }
  }
  // Now do the same thing for Y.
  public Position(int x, int y)
  {
    if (!IsValidX(x)) 
      throw new ArgumentException("explanation here", "x");
    if (!IsValidY(y))
      throw new ArgumentException("explanation here", "y");
    this.x = x;
    this.y = y;
  }
}

请注意,我们想要抛出不同的参数异常,因为每种情况下的参数名称都不同。

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

仅当条件为真时如何创建 HTML

来自分类Dev

C#等到条件为真

来自分类Dev

仅在条件为真时如何返回?

来自分类Dev

如何在不创建实例的情况下从C#类调用静态方法

来自分类Dev

如何创建一个C#类的实例,其实例的属性为set.private..from F#

来自分类Dev

Autofac-如何在创建实例时获取类名

来自分类Dev

C#文件为null,在创建实例时崩溃。

来自分类Dev

C#如何通过类属性创建类实例

来自分类Dev

当条件为真时,c#在字符上拆分字符串

来自分类Dev

Notepad ++-如何在条件为真时替换1个字符

来自分类Dev

如何在条件为真时自动在一个表中添加值

来自分类Dev

如何在 C# 中为多个集合创建类模型?

来自分类Dev

是否将在C#中为类的每个实例创建一个属性实例?

来自分类Dev

C# 如何在类实例之间保留数据?

来自分类Dev

如何在C#文件中创建List <T>实例

来自分类Dev

如何在 C# 中创建异常实例?

来自分类Dev

从XAML内部创建C#类的实例

来自分类Dev

C#创建静态类的全局实例

来自分类Dev

动态创建C#类的实例

来自分类Dev

ReactJS仅在条件为真时如何获取?

来自分类Dev

仅当条件为真时,如何才能显示此跨度?

来自分类Dev

当条件为真时使用C ++算法推进迭代器

来自分类Dev

如何在Smalltalk中创建类的实例?

来自分类Dev

如何在Smalltalk中创建类的实例?

来自分类Dev

在C#中为“ this”创建实例变量

来自分类Dev

C#如何在一个函数中创建类的实例,然后在另一个函数中使用相同的实例

来自分类Dev

如何在Scala中为Traversable的任何子类创建类型类实例

来自分类Dev

如何在Scala中为Traversable的任何子类创建类型类实例

来自分类Dev

C#如何使用新类中以前创建的类实例

Related 相关文章

  1. 1

    仅当条件为真时如何创建 HTML

  2. 2

    C#等到条件为真

  3. 3

    仅在条件为真时如何返回?

  4. 4

    如何在不创建实例的情况下从C#类调用静态方法

  5. 5

    如何创建一个C#类的实例,其实例的属性为set.private..from F#

  6. 6

    Autofac-如何在创建实例时获取类名

  7. 7

    C#文件为null,在创建实例时崩溃。

  8. 8

    C#如何通过类属性创建类实例

  9. 9

    当条件为真时,c#在字符上拆分字符串

  10. 10

    Notepad ++-如何在条件为真时替换1个字符

  11. 11

    如何在条件为真时自动在一个表中添加值

  12. 12

    如何在 C# 中为多个集合创建类模型?

  13. 13

    是否将在C#中为类的每个实例创建一个属性实例?

  14. 14

    C# 如何在类实例之间保留数据?

  15. 15

    如何在C#文件中创建List <T>实例

  16. 16

    如何在 C# 中创建异常实例?

  17. 17

    从XAML内部创建C#类的实例

  18. 18

    C#创建静态类的全局实例

  19. 19

    动态创建C#类的实例

  20. 20

    ReactJS仅在条件为真时如何获取?

  21. 21

    仅当条件为真时,如何才能显示此跨度?

  22. 22

    当条件为真时使用C ++算法推进迭代器

  23. 23

    如何在Smalltalk中创建类的实例?

  24. 24

    如何在Smalltalk中创建类的实例?

  25. 25

    在C#中为“ this”创建实例变量

  26. 26

    C#如何在一个函数中创建类的实例,然后在另一个函数中使用相同的实例

  27. 27

    如何在Scala中为Traversable的任何子类创建类型类实例

  28. 28

    如何在Scala中为Traversable的任何子类创建类型类实例

  29. 29

    C#如何使用新类中以前创建的类实例

热门标签

归档