首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > .NET > C# >

[C# 新手有关问题]关于方法返回值的有关问题

2012-03-29 
[C# 新手问题]关于方法返回值的问题.public int CompareTo(object obj){if (obj is person){person otherp

[C# 新手问题]关于方法返回值的问题.
public int CompareTo(object obj)
  {
  if (obj is person)
  { 
  person otherperson = obj as person;
  return this.Age - otherperson.Age;
  }
  else
  { 
  throw new ArgumentException("用来比较的对像不是person对像");
   
  }
  int a=10; //变成无法访问代码
   
  }


请教:上面代码.

  1、是不是throw 可以代替return呢。因为带有返回值的方法必须return出去一个值,但是这里的return在if语句中。
  2、变量a,变成了无法访问的代码,是不是说throw以后,方法就停止运行了或者说是直接跳出方法了。

[解决办法]
throw和return是两回事
throw后,不会继续执行
[解决办法]
问题回答:
1、throw 不可以用return代替,你这个方法是返回一个int类型,所有每个if……分支都要有返回int值,
而throw是抛出异常,程序出现异常时用到,这时程序中止,后面的都不执行。
2、变量a,如果出现异常,遇到throw程序就中止了,a当然就变成了无法访问的代码。

热点排行