C# Blazor静态方法无法识别,如何正确调用?
静态方法调用错误排查与解决
问题场景
我定义了如下静态类及静态方法:
public static class ValidationHelper { public static StringBuilder BookingKeyInfoValidation(ViewBookingDTO SelectedBooking) { StringBuilder errMsg = new StringBuilder(); // ... 方法实现代码 } }
随后在非静态方法中尝试调用该方法:
StringBuilder errMsg = ValidationHelper.BookingKeyInfoValidation(SelectedBooking);
但收到错误提示:
'ValidationHelper' does not contain a definition for 'BookingKeyInfoValidation'
排查与解决步骤
- 核对命名空间:确保调用代码所在类与
ValidationHelper处于同一命名空间,或已通过using指令引入目标命名空间。若未引入,可添加using 目标命名空间;,或使用完全限定名调用:目标命名空间.ValidationHelper.BookingKeyInfoValidation(SelectedBooking); - 确认方法访问权限:检查
BookingKeyInfoValidation的访问修饰符是否为public,若为internal,则调用代码必须与静态类处于同一程序集内。 - 匹配参数类型:验证调用时传入的
SelectedBooking参数类型,是否与方法定义的ViewBookingDTO完全一致(包括所属命名空间),避免传入相似但不同的DTO类型。 - 检查项目引用与编译状态:若
ValidationHelper在其他项目中,确保调用方项目已正确引用该项目,且两个项目均无编译错误。 - 清理缓存重新编译:清理项目的
bin/obj目录后,重新生成整个解决方案,排除编译缓存导致的异常。
内容的提问来源于stack exchange,提问作者bilpor
相关产品推荐
相关产品推荐

