【问题标题】:Functions suddenly require 'sender As Object, e As System.EventArgs'函数突然需要'sender As Object, e As System.EventArgs'
【发布时间】:2014-02-27 03:26:37
【问题描述】:

我正在对一个 asp.net 项目进行最后的调试。我在代码隐藏中的函数都很简单,而且大多数都不带任何参数。例如,我使用如下所示的函数登录用户:

Sub LogInUser()

    (my code)

End Sub

这些是从关联的 .aspx 页面调用的,通常带有按钮。这已经好几个星期了。今天早上突然,我所有的页面都给我错误:

BC30408: Method 'Public Sub SearchAndChangePage()' does not have 
the same signature as delegate 'Delegate Sub EventHandler
(sender As Object, e As System.EventArgs)'.

我将这些默认参数添加到我的函数中,它们又开始工作了。我想我可以遍历我的整个应用程序并做到这一点,并与那些接受其他参数的应用程序混在一起,但谁能告诉我为什么我的应用程序会突然表现得那样?我真的很讨厌我无法解决的代码中的谜团,即使我知道如何解决它们。

有一件事,我已将 .axpx 和 .aspx.vb 文件从我的本地开发环境(在“解决方案”文件夹中)移动到服务器上。但是直到今天早上他们在服务器上工作正常。

【问题讨论】:

  • SearchAndChangePage是否注册了某个按钮的点击事件?
  • 您是否使用该方法作为事件处理程序?
  • @ChrisHardie,恐怕我不确定这是否意味着 - 我正在学习教程,但结果是我有一个带有按钮的 .aspx 页面,与子代码隐藏,这就是我所知道的。您是在谈论我在代码文件顶部继承或导入的内容吗?这一点我都没有改变。它刚刚开始出人意料地采取这种方式。
  • @Steve,不确定您指的是哪种方法。我的 .aspx 页面上只有一个 asp 按钮,我的代码文件中有一个函数,仅此而已。很抱歉成为这样的菜鸟。
  • 如果其他人看到这个,我在 .aspx 页面上的第一行是:

标签: asp.net vb.net function code-behind


【解决方案1】:

这听起来你已经转向Options Strict On,所以 VB.NET 不再允许你逍遥法外。

实际上,像SearchAndChangePage 这样的订阅者应该总是有object sender, EventArgs e 签名,但你可以不用那个签名而侥幸逃脱。

不管你怎么做,你现在就像一个专业人士一样编程 - 这是做事的正确方法,而且你不会在不被告知的情况下犯那么多错误。

【讨论】:

  • 我只知道有人会这么说。我认为您是对的,因为它还发现了另一个迫使我修复的语法错误,但我知道那个。谢谢,我会应付教程。
  • 选项显式开启;选项严格;选项推断关闭。编程本该如此!
猜你喜欢
  • 2016-02-09
  • 2023-01-30
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2020-09-02
  • 1970-01-01
  • 2022-12-19
相关资源
最近更新 更多