哪位大侠帮我看看这段代码怎么老报错提示说"应输入;" 
如果我在申明一个ITextData 变量 在return时给它负值那样是可以的 但正常情况下 下面代码应该没什么问题 public ITextData Create() 

if (GetDbType() == "SqlServer") 
    return (ITextData) new SqlText(); 
else (GetDbType() == "Oracle") 
    return (ITextData) new OracleText(); 
else if (GetDbType() == "MySql") 
    return (ITextData)new MySqlText(); 
else
    return null;
}
我这样写 就报“并非所有代码都有返回值”错误 public ITextData Create() 

    if (GetDbType() == "SqlServer") 
    { 
        return (ITextData) new SqlText(); 
    } 
    else if (GetDbType() == "Oracle") 
    { 
        return (ITextData) new OracleText(); 
    } 
    else if (GetDbType() == "MySql") 
    { 
         return (ITextData) new MySqlText(); 
    } 
    else 
    { 
         return null; 
    } 

这是别人一段可以运行的代码 不知道为什么他的可以我的不可以 public IJobData Create() 

  if (GetDbIdentifier() == ConnectionStringConfig.FactoryEnum.SqlServer) 
     return (IJobData) new SqlJobData(); 
  else 
     return (IJobData) new OracleJobData(); 
}

解决方案 »

  1.   

    public ITextData Create() 

        if (GetDbType() == "SqlServer") 
        { 
            return (ITextData) new SqlText(); 
        } 
        else (GetDbType() == "Oracle") 
        { 
            return (ITextData) new OracleText(); 
        } 
        else if (GetDbType() == "MySql") 
        { 
             return (ITextData) new MySqlText(); 
        } 
        else 
        { 
             return null; 
        } 
    } 这么改呢???
      

  2.   

    public ITextData Create() 

        ITextData iTD = null;
        if (GetDbType() == "SqlServer") 
        { 
            iTd =(ITextData) new SqlText(); 
        } 
        else if (GetDbType() == "Oracle") 
        { 
            iTd =(ITextData) new OracleText(); 
        } 
        else if (GetDbType() == "MySql") 
        { 
             iTd =(ITextData) new MySqlText(); 
        } 
        
        return iTd;

    不就结了啊。。