- 我有一个 RoundedSum 对象,它基本上检查产品的价格和一个整数和到数据库中。
- 我有一个 UnRoundedSum 对象,它基本上继承了 RoundedSum 并覆盖了 checkinsum 函数,并将与最接近的整数的差异检查为未计入
- UnRoundedSum 调用 base 的 checkinsum(productid,int) 将价格值检查到 DB 这是我的命名空间 SumRounding,它有 2 个类
namespace DatabasePricing.SumRounding
{
public class Roundedsum
{
public void checkinsum(int productid,int sum)
{
//Checks in price in the price table
//dbobject("price",productid,sum);
int temp_int = sum;
}
}
public class UnRoundedSum : Roundedsum
{
public void checkinsum(int productid,float sum)
{
//Since the sum is a float it will check the difference
//into unroundedsum table in the database
int intsum = (int)sum;
float tempfloat = sum - intsum;
//Check this remaining float into the database under unaccounted
// dbobject("unroundedsum",productid,tempfloat);
//Now call the integer checksum with the integer value
checkinsum(productid,intsum);
}
}
}
这让我们假设我现在为测试 rite 创建了一个主要功能,因为它在我的项目中不起作用。这就像上述类的测试对象。
using DatabasePricing.SumRounding;
namespace DatabasePricing
{
class testingrounding
{
static void Main() {
int product_id = 1;
float float_value = 1.1f;
UnRoundedSum obj1 = new UnRoundedSum();
//This call produces StackOverflow Exception
obj1.checkinsum(1, float_value);
int price = 200;
//I tried with integer value to test RoundedSum object
//it is still throwing an exception
//This call also produces StackOverflow Exception
obj1.checkinsum(1, price);
}
}
}
当我尝试调试时,它总是在 checkinsum() 引发 StackOverflow 错误之前被捕获。当我尝试调试时,即使在执行后它也会返回到 checkinsum() 中。由于某种原因,它不断回来。我不知道会出什么问题。