Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/335.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 在其他类中组合类的对象时如何进行验证?_C#_Oop - Fatal编程技术网

C# 在其他类中组合类的对象时如何进行验证?

C# 在其他类中组合类的对象时如何进行验证?,c#,oop,C#,Oop,我有一个IPAddress类,它有一个名为ip的属性,在它的setter中,我正在验证即将到来的数据,如果数据无效,它将抛出一个错误。(其代码如下所示): 在用户类中,我想组成一个IPAddress类的对象 我正在对用户类中的用户属性和IPAddress类中的Ip属性进行验证 我的问题是如何在UserClass中组合IPAddress对象,以及该对象的语法是什么 若我在这里再次提到get和set,并在User类中使用IPAddress对象,我前面提到的(在IPAddress类中)getter和s

我有一个IPAddress类,它有一个名为ip的属性,在它的setter中,我正在验证即将到来的数据,如果数据无效,它将抛出一个错误。(其代码如下所示):

在用户类中,我想组成一个IPAddress类的对象

我正在对用户类中的用户属性和IPAddress类中的Ip属性进行验证

我的问题是如何在UserClass中组合IPAddress对象,以及该对象的语法是什么

若我在这里再次提到get和set,并在User类中使用IPAddress对象,我前面提到的(在IPAddress类中)getter和setter会起作用吗

  • 为UserClass创建构造函数,如下所示:

    public IPAddress userIpAddress;
    // Other fields and properties
    
    public UserCLass(IPAddress ipAddress, .... other fields)
    {
        userIpAddress = ipAddress; // here validation for IPAddress will be called
    }
    
  • 使用正则表达式进行IP地址验证


  • 在这里帮不上忙?

    嗨,谢谢你的古丁。但我无法使用我在setter中编码的IPAddress类的验证吗?我想使用setter进行验证,因为它更灵活,并且可以自动触发。对于构造函数,如果我创建了多个构造函数,我将不得不重做这个。请指导我。在用户类中更改IPAddress值的任何位置,都会自动调用验证。还是我没领会你的意思?Hun1Ahpu谢谢你的指导,请在我感到困惑的一件事上指导我。首先,我在IPAddress类的setter中进行了验证。在我正在实现IPAddress对象的用户类中,我必须再次像:public IPAddress myIP{get;set;}那样进行get和set设置吗?是否有必要在IPAddress类中提到2个get和set,一个在IPAddress类中,另一个在用户类中?thanks@haansi-不,您不应该执行两次验证。说到验证,您的代码中有两个小错误:
    PartsOfIP
    应该声明为
    string[]
    ;缩进错误:缺少
    集合的结束方括号{
    最后。顺便说一句。我最好抛出一个比
    异常更具体的异常,例如
    ArgumentException
    。shahkalpesh IPAddress是自定义类,没有TryParse menthod?你能解释一下你的建议吗?@haansi:我写了.net framework中名为
    IPAddress
    的现有类,它可以为你的目的服务。你可以使用这个类而不是创建你自己的类。
    public IPAddress userIpAddress;
    // Other fields and properties
    
    public UserCLass(IPAddress ipAddress, .... other fields)
    {
        userIpAddress = ipAddress; // here validation for IPAddress will be called
    }