可以';t在另一个文件中访问我的扩展方法
本文关键字:访问 我的 扩展 方法 文件 另一个 可以 | 更新日期: 2023-09-27 18:19:28
我在Extensions.cs
文件中有这个命名空间:
namespace TextBoxExtensions
{
public static class TextBoxExtensionsClass
{
public static void ResetColor(this Label label)
{
label.ForeColor = new TextBox().ForeColor;
}
}
}
然后:
using TextBoxExtensions;
//。。。
textbox.ResetColor();
当我试图在另一个文件中访问它时,我得到以下错误:
"System.Windows.Forms.TextBox"不包含"ResetColor"的定义,并且最佳扩展方法重载"TextBoxExtensions.TextBoxExtensionClass.ResetColor(System.Windows.Fforms.Label)"具有一些无效参数
什么类型的textbox
?您的扩展名是针对Label
对象的。我猜这是你的问题。。。。您的textbox
对象不是Label 类型
问题是您已经为Label
类型定义了扩展方法,但正试图调用TextBox
的实例。
试试这个,这将允许您将其用于任何类型的控制:
public static void ResetColor<T>(this T control) where T : Control, new()
{
control.ForeColor = new T().ForeColor;
}
您已经为Label
类定义了扩展方法。然后,您尝试在TextBox
上使用它,由于明显的原因,这将不起作用(这两个类彼此没有关系)。