原来的类如下:public class User{
private string uid;
public User(string uid){
  this.uid = uid;
}public User(LoginUser u) : this(u.uid){}// 通过this重用代码
}现在有个问题,传入的LoginUser 可能为null,所以第二个构造函数可能出现异常
请教如何实现加条件实现重用
比如如何实现下面的功能:
public User(LoginUser u){
 if(u != null)
    this(u.uid);
}

解决方案 »

  1.   

    我要的是代码重用的答案,不是下面这种答案:
    public User(LoginUser u){
     if(u != null)
      this.uid =u.uid;
    }
    谢谢各位
      

  2.   

    if (u != null)
    {
      new User(u.uid);
    }?
      

  3.   

    问一下,LoginUser 类是继承User的?
      

  4.   

    LoginUser 
    和User
    是没有任何关系的2个类
      

  5.   

    怎么另写呢?求教:我现在是在所有调用构造函数的地方判断是否为null
    觉得繁琐了点
      

  6.   

    你用工厂模式写个创建方法行么,构造函数写成私有访问的。然后写
    public static User CreateInstance(LoginUser u)
    {
        return u==null? new User(""):new User(u.uid);    
    }
      

  7.   

    本帖最后由 net_lover 于 2010-11-04 13:39:37 编辑
      

  8.   

    public class User{
    private string uid;
    public User(string uid){
      if(uid != null && uid.Length >0)//判非空
      this.uid = uid;
    }
    //LoginUser为Null时,传递空字符串,上面构造函数加判空操作
    public User(LoginUser u) : this(u == null?"":u.uid){}// 通过this重用代码
    }