今天按着书上的例子写呀写,写了一下午终于做出了一个三层模式的通讯录(当然很简单),但是,弄了最后却碰到个运行时的

异常,弄得我这个asp.net菜鸟郁闷了再郁闷.
异常如下:
发生类型为 System.StackOverflowException 的异常。
看了网上的资料说是,由于递归调用了自己.编译能够通过,但是运行会产生异常.
msdn上说:

关于异常的疑难解答:System.StackOverflowException

当嵌套的方法调用过多而导致执行堆栈溢出时,将引发 StackOverflowException 异常。

相关提示

确保您没有无限循环或无限递归。
过多的方法调用通常意味着存在非常深的递归或无限递归。

备注

您无法捕捉堆栈溢出异常,因为异常处理代码可能需要堆栈。当普通应用程序中发生堆栈溢出时,公共语言运行库 (CLR) 会

终止进程。

承载 CLR 的应用程序可以更改默认行为并指定 CLR 卸载发生异常的应用程序域,但允许进程继续进行。有关更多信息,请

参见 ICLRPolicyManager 和承载公共语言运行库。

我找啊找,找了好久......最后,一段代码一段代码的去执行,再补充点辅助调试的代码....
终于,发现了我这个类中当要得到CAddress这个值时就会引发异常.

using System;

namespace FSDataAccess
{
 /// <summary>
 /// ContactEntry 联系人实体
 /// </summary>
 public class ContactEntry
 {
  private int cID;//联系人编号
  private string cName;//姓名
  private string cAddress;//地址
  private string cPhone;//电话
  private string cEmail;//电子邮件
  
  public ContactEntry()
  {
   //
   // TODO: 在此处添加构造函数逻辑
   //
  }

/// <summary>
  /// 联系人编号
  /// </summary>
  public int CID
  {
   get{return cID;}
   set{cID=value;}
  }

/// <summary>
  /// 姓名
  /// </summary>
  public string CName
  {
   get{return cName;}
   set{cName=value;}
  }
  /// <summary>
  /// 地址
  /// </summary>
  public string CAddress
  {
   get{return CAddress;}
   set{cAddress=value;}
  }
  /// <summary>
  /// 电话
  /// </summary>
  public string CPhone
  {
   get{return cPhone;}
   set{cPhone=value;}
  }
  /// <summary>
  /// 电子邮件
  /// </summary>
  public string CEmail
  {
   get{return cEmail;}
   set{cEmail=value;}
  }

}
}

不知道您在看了上面的public string CAddress{}之后有没有发现错误.这里我把return CAddress;中的CAddress首字母大写

了,应该是private成员cAddress,郁闷啊...想来,这里产生System.StackOverflowException 异常就不足为怪了(递归调用自

己)...
把public string CAddress{}
改成  public string CAddress
  {
   get{return cAddress;}
   set{cAddress=value;}
  }
就行了....学习今天到此为止..休息!!!

System.StackOverflowException的一个例子(转)的更多相关文章

  1. spring笔记--使用springAPI以及自定义类 实现AOP的一个例子

    Spring的另一个重要思想是AOP,面向切面的编程,它提供了一种机制,可以在执行业务前后执行另外的代码,Servlet中的Filter就是一种AOP思想的体现,下面通过一个例子来感受一下. 假设我们 ...

  2. 对Jena的简单理解和一个例子

    本文简单介绍Jena(Jena 2.4),使用Protégé 3.1(不是最新版本)创建一个简单的生物(Creature)本体,然后参照Jena文档中的一个例子对本体进行简单的处理,输出本体中的Cla ...

  3. Web服务,XFire的一个例子

    Web服务优点 互操作性:实现不同系统间的相互调用(语言无关.平台无关) Web服务是什么 Web 服务是一类应用程序,是能够用编程的方法通过Web调用来实现某个功能的应用程序 Web服务的体系结构 ...

  4. JUnit 3一个例子就懂

    JUnit is a simple framework to write repeatable tests. It is an instance of the xUnit architecture f ...

  5. Java编程思想中关于闭包的一个例子

    Java编程思想中的一个例子,不是很理解使用闭包的必要性,如果不使用闭包,是不是有些任务就不能完成?继续探索. package InnerClass; interface Incrementable ...

  6. 从一个例子学习 instanceof 和 getclass 的区别

    判断两个对象是否为同一类型,时常用到getclass 和 instanceof ,而这两个函数又是时常让人混淆.下面从一个例子说明两者的区别: public class Test_drive { pu ...

  7. 通过一个例子感受C# 6.0新特性

    微软在Visual Studio 2015中更新C#语言到6.0,添加了很多很好的特性,以使C#语言继续跻身于最优秀语言之行列.下面通过一个例子快速感受一下C# 6.0的新特性,以下程序在VS2015 ...

  8. 一个例子搞清楚Java程序执行顺序

    当我们new一个GirlFriend时,我们都做了什么? 一个例子搞懂Java程序运行顺序 public class Girl { Person person = new Person("G ...

  9. ReCap 360 photo照片建模技术的又一个例子

    这是我做的又一个利用Autodesk ReCap 360 照片建模技术做的一个例子.你可以下载模型自己把玩,或者下载原始照片自己试一试. 拍摄工具: 小米手机 照片数量:约120张 后期处理工具: p ...

随机推荐

  1. 庆祝下:iOS 开发者企业级计划(299美元/年帐户+邓白氏码免费) 和 Windows Phone公司应用(公司帐户99美元+Symantec企业证书299美元/年))顺利发布成功

    时间:2013-11-15,地址:http://192.168.0.8  网站可下载三个终端应用直接安装IOS,Windows Phone,Android iOS: 企业版IDP通过 iTunes.使 ...

  2. Maven依赖版本冲突的分析及解决小结

    1:前言 做软件开发这几年遇到了许多的问题,也总结了一些问题的解决之道,之后慢慢的再遇到的都是一些重复性的问题了,当然,还有一些自己没有完全弄明白的问题.如果做的事情是重复的,遇到重复性问题的概率也就 ...

  3. js实现表单验证 常用JS表单验证

    CSS代码 @charset "gb2312"; /* CSS Document */ body,dl,dt,dd,div,form {padding:;margin:;} #he ...

  4. 常用 C#操作字符串方法

    staticvoid Main(string[] args) { string s =""; //(1)字符访问(下标访问s[i]) s ="ABCD"; Co ...

  5. python 脚本中使用了第三方openpyxl 打包程序运行提示ImportError:cannot import name __version__

    最近写了一个脚本,脚本中使用了第三方openpyxl(openpyxl是使用 pip install openpyxl 下载的),先是使用py2exe打包程序,打包过程中提示很多文件没有包含,在没有仔 ...

  6. 12,SFDC 管理员篇 - 页面配置

    1, 添加Tab Setup | Create | Tab 通过Tab我们可以为我们新建的表对象添加访问路径   2,创建自定义按钮 我们想在Account 中添加一个自定义按钮,去链接外部页面,也可 ...

  7. excel 怎么去掉单元格中第一个空格或其他特定符号/Excel excel中批量去掉表格中首字母前的空格或特定符号

    =IF(FIND(" ",A160)>1,A160,MID(A160,FIND(" ",A160)+1,LEN(A160)-FIND(" &qu ...

  8. C++学习基础十一——子类对象向父类对象的转化

    一.C++中可以实现子类向父类的转换,主要分为三种形式: 1.对象转换:不能实现动态绑定,即不能实现多态. 2.引用转换:动态绑定,实现多态. 3.指针转换:动态绑定,实现多态. 注意:一般不会出现父 ...

  9. Docker学习过程中遇到的问题及解决方法

    1.重新安装Docker后,运行不起来 [root@zyt-test-14-53 ~]# docker infoCannot connect to the Docker daemon. Is the ...

  10. 填坑*** WARNING L15: MULTIPLE CALL TO SEGMENT

    填坑*** WARNING L15: MULTIPLE CALL TO SEGMENT 警告:发生了重入! 解释:在主循环里调用了一个函数,而在中断服务中又一次调用了同样的函数.当主循环运行到该函数中 ...