任何具有返回值的方法或函数必须具有返回值或抛错,否则就出错。
上面的代码改成:public string GetIdStr() //把似有成员变量_id转换为字符串并返回
{
StringBuilder s = new StringBuilder(25);
foreach (bool b in _id)
{
s.Append(b ? "1" : "0");
//放在这里是不能确定GetIdStr()有返回值的
}
return s.ToString();
}
上面的代码改成:public string GetIdStr() //把似有成员变量_id转换为字符串并返回
{
StringBuilder s = new StringBuilder(25);
foreach (bool b in _id)
{
s.Append(b ? "1" : "0");
//放在这里是不能确定GetIdStr()有返回值的
}
return s.ToString();
}
解决方案 »
- .net中 string类型转换成double或float问题
- 求助C#.net
- 【求教】WINFORM的app.config疑问!
- winform中的textbox的非空验证
- 如何用DataSet生成指定结构的XML??
- 第2次提问。。无法得到Cookie问题。(做程序登陆Gmail时遇到的问题)
- 关于基于pop3的邮件接受的程序的问题^@^
- (急)在C#中自动产生组织结构图
- 网格数据更新问题?((TextBox)e.Item.Cells[2].Controls[1]).Text;什么意思?
- 高手进来看看,关于controls.add(..)一个控件后如何得到html字符串?
- 程序发送邮件,提示:请注意:此邮件非网易系统邮件,请不要轻易透...
- 坐标计算
public string GetIdStr() //把似有成员变量_id转换为字符串并返回
{
StringBuilder s = new StringBuilder(25);
foreach (bool b in _id)
{
s.Append(b ? "1" : "0");
}
return s.ToString();//将这句提到外边
//原因:当_id没有值时,代码就不会走进foreach语句,此方法就没有retrun值
}
{
StringBuilder s = new StringBuilder(25);
foreach (bool b in _id)
{
s.Append(b ? "1" : "0");
//放在这里是不能确定GetIdStr()有返回值的
}
return s.ToString();
}
{
StringBuilder s = new StringBuilder(25);
foreach (bool b in _id)
{
s.Append(b ? "1" : "0");
}
return s.ToString();
}
{
StringBuilder s = new StringBuilder(25);
foreach (bool b in _id)
{
s.Append(b ? "1" : "0");
break;
}
return s.ToString();
}
{
StringBuilder s = new StringBuilder(25);
foreach (bool b in _id)
{
s.Append(b ? "1" : "0");
}
return s.ToString();
}
{
StringBuilder s = new StringBuilder(25);
foreach (bool b in _id)
{
s.Append(b ? "1" : "0");
}
return s.ToString();
}
放到最后面
{
if(a > 0)
return a;
}咋看起开上面的逻辑没有任何问题,在 C 语言里这是完全正确的,但 C# 语言很严谨,它不允许含糊其辞。具体分析一下。此过程的本意为传入一个参数,如果参数值大于零则返回该参数值。但过程中只处理了参数值大于零的情况,其他情况并没有做任何处理,所以 VS 编译器认为在反面情况下也应该有一个返回值,否则就是所谓的“并非所有的代码路径都返回值”错误产生了。
{
StringBuilder s = new StringBuilder(25);
foreach (bool b in _id)
{
s.Append(b ? "1" : "0");
}
return s.ToString();
}