【问题标题】:C# control not going into the methodC# 控件不进入方法
【发布时间】:2019-01-06 00:55:47
【问题描述】:

我正在尝试从像这样的另一个私有方法调用私有方法

UploadFeeScheduleToDb(147, finalPath);  

方法定义:

void UploadFeeScheduleToDb(int UploadID, string UploadFilePath)
{
    DataSet CSVData = CSVToDataSet(UploadFilePath);
}

问题是 C# 控件进入方法调用但没有进入方法调用。我添加了这样的断点:

如您所见,控件正在到达断点,但没有到达该方法内的第二个断点。它只是跳到lblMsg.Text... 语句,在输出窗口中没有任何异常。

我尝试了清洁解决方案和重建。此外,我将常量或魔法值传递给该方法。但没有运气。不知道怎么回事?

【问题讨论】:

  • 可能开启了代码优化,内联了方法。也许发生了异常,但它不在您的用户代码中。尝试对所有异常启用中断。
  • 您能否在调用 UploadFreeScheduleToDb 的代码周围添加 try catch 并判断它是否抛出任何异常。
  • 你确定没有重载的 UploadFeeScheduleToDb 方法,id 是 int 类型,finalPath 是字符串类型。 ? @aishwarya-shiva
  • 奇怪,但有几件事要尝试:finalPath 是字段/局部变量,还是属性?如果是后者,则可能是它的吸气剂引起了问题。第二 - 在活动的构建配置中,该项目是否实际设置为构建?如果不是,代码可能不再匹配二进制文件,但它似乎仍然可以正常构建和运行。最后试着在这条线上贴一个 try-catch - 有什么东西抛出吗?
  • “代码优化是问题” - 因为该方法只分配给局部变量。它完全没有任何作用。

标签: c# asp.net .net function methods


【解决方案1】:

正如@Silvermind 和@HenkHolterman 所说,UploadFeeScheduleToDb 方法除了将值分配给它的局部变量外,并没有做任何有效的事情,当代码优化功能打开时,C# 编译器将忽略此方法。我认为这称为Dead Code Optimization。如果我错了,请纠正我。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2016-04-08
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2013-03-22
    • 1970-01-01
    • 2012-09-29
    • 1970-01-01
    相关资源
    最近更新 更多