C# 在其他类中组合类的对象时如何进行验证?
我有一个IPAddress类,它有一个名为ip的属性,在它的setter中,我正在验证即将到来的数据,如果数据无效,它将抛出一个错误。(其代码如下所示): 在用户类中,我想组成一个IPAddress类的对象 我正在对用户类中的用户属性和IPAddress类中的Ip属性进行验证 我的问题是如何在UserClass中组合IPAddress对象,以及该对象的语法是什么 若我在这里再次提到get和set,并在User类中使用IPAddress对象,我前面提到的(在IPAddress类中)getter和setter会起作用吗C# 在其他类中组合类的对象时如何进行验证?,c#,oop,C#,Oop,我有一个IPAddress类,它有一个名为ip的属性,在它的setter中,我正在验证即将到来的数据,如果数据无效,它将抛出一个错误。(其代码如下所示): 在用户类中,我想组成一个IPAddress类的对象 我正在对用户类中的用户属性和IPAddress类中的Ip属性进行验证 我的问题是如何在UserClass中组合IPAddress对象,以及该对象的语法是什么 若我在这里再次提到get和set,并在User类中使用IPAddress对象,我前面提到的(在IPAddress类中)getter和s
public IPAddress userIpAddress;
// Other fields and properties
public UserCLass(IPAddress ipAddress, .... other fields)
{
userIpAddress = ipAddress; // here validation for IPAddress will be called
}
在这里帮不上忙?嗨,谢谢你的古丁。但我无法使用我在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
}