关于abstract 和 override 的一个小问题

ivan_08 2009-05-25 11:21:36

namespace ConsoleApplication5
{
abstract class ABC
{
public abstract void AFunc();
public void BFunc()
{
Console.WriteLine("这是一个非抽象方法!");
}
}
class Derv : ABC
{
public override void AFunc()
{
throw new Exception("The method or operation is not implemented.");
// 我用得是vs2005,这里我用系统提示输入AFunc以后,这一行是自动弹出来的,
// 第一个问题这一行是什么意思?
// 第二个问题是如果保留这行,结果可以运行,但是不显示结果
// 但是把这行去掉就可以了
// 保留此行会出现这样的提示,我不知道是为什么
/*
Unhandled Exception: System.Exception: The method or operation is not implemente
d.
at ConsoleApplication5.Derv.AFunc() in G:\vc\0316\ConsoleApplication5\Console
Application5\Program.cs:line 21
at ConsoleApplication5.Program.Main(String[] args) in G:\vc\0316\ConsoleAppli
cation5\ConsoleApplication5\Program.cs:line 30
请按任意键继续. . .
*/
Console.WriteLine("这是一个抽象方法!");
}
}
class Program
{
static void Main(string[] args)
{
Derv objB = new Derv();
objB.AFunc();
objB.BFunc();
}
}
}
...全文
107 6 打赏 收藏 转发到动态 举报
写回复
用AI写文章
6 条回复
切换为时间正序
请发表友善的回复…
发表回复
dyshadow 2009-05-25
  • 打赏
  • 举报
回复
THROW EXPECTION的意思就是抛出一个异常。
ivan_08 2009-05-25
  • 打赏
  • 举报
回复
[Quote=引用 1 楼 LoveLife_Go 的回复:]
第一个问题:这是抛出异常,如果你用try catch,可以放到catch里,如果不用try catch,这一行可以不要
第二个问题:这一行是当出错的时候,才需要的,你保留这行,运行程序的时候,先把异常抛出来了,所以不显示结果
如果你用try chatch就放到catch里,不用的话,这一行就不用要了
[/Quote]

能否举一个try catch的例子 谢谢啦~~
evaa006 2009-05-25
  • 打赏
  • 举报
回复
这行是示例代码啊,就像继承一个接口一样啊。
ztenv 2009-05-25
  • 打赏
  • 举报
回复
public override void AFunc()
{
throw new Exception("The method or operation is not implemented.");
// 我用得是vs2005,这里我用系统提示输入AFunc以后,这一行是自动弹出来的,
// 第一个问题这一行是什么意思?
*********************************************************
是IDE自动加入的提示语句,万一您在写程序的过程中没有实现(没有写任何代码只有一个空的函数),就达不到您预
期的执行结果,根据这个考虑IDE在生成代码的同时特此throw一个异常;
*********************************************************

// 第二个问题是如果保留这行,结果可以运行,但是不显示结果
// 但是把这行去掉就可以了
// 保留此行会出现这样的提示,我不知道是为什么
/*
************************************************************
如果保留了这一行,在执行到这一行的时候,就不会再执行这个函数中此行后面的代码了,如果你真的要保留这一行(一般是
不保留的在你实现了这个函数后),就把您加入的代码写到这行的上面即可;
************************************************************
Unhandled Exception: System.Exception: The method or operation is not implemente
d.
at ConsoleApplication5.Derv.AFunc() in G:\vc\0316\ConsoleApplication5\Console
Application5\Program.cs:line 21
at ConsoleApplication5.Program.Main(String[] args) in G:\vc\0316\ConsoleAppli
cation5\ConsoleApplication5\Program.cs:line 30
请按任意键继续. . .
*/
Console.WriteLine("这是一个抽象方法!");
}
dyshadow 2009-05-25
  • 打赏
  • 举报
回复
这句话是为了提醒程序员在其中编写代码。
的确是应该删除的。
LoveLife_Go 2009-05-25
  • 打赏
  • 举报
回复
第一个问题:这是抛出异常,如果你用try catch,可以放到catch里,如果不用try catch,这一行可以不要
第二个问题:这一行是当出错的时候,才需要的,你保留这行,运行程序的时候,先把异常抛出来了,所以不显示结果
如果你用try chatch就放到catch里,不用的话,这一行就不用要了

110,532

社区成员

发帖
与我相关
我的任务
社区描述
.NET技术 C#
社区管理员
  • C#
  • Web++
  • by_封爱
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

让您成为最强悍的C#开发者

试试用AI创作助手写篇文章吧