为什么这个扩展方法不起作用?

发布于 2024-10-26 22:31:10 字数 190 浏览 3 评论 0原文

public static string ToTrimmedString(this DataRow row, string columnName)
{
    return row[columnName].ToString().Trim();
}

编译正常,但它没有显示在 DataRow 的智能感知中......

public static string ToTrimmedString(this DataRow row, string columnName)
{
    return row[columnName].ToString().Trim();
}

Compiles fine but it doesn't show up in intellisense of the DataRow...

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(6

木落 2024-11-02 22:31:10

我的猜测是你没有包含名称空间。

My guess is you haven't included the namespace.

始终不够爱げ你 2024-11-02 22:31:10

确保此方法位于其自己的静态类中,该类与使用 DataRow 的类不同。

namespace MyProject.Extensions
{
   public static class DataRowExtensions
   {
      //your extension methods
   }
}

在您的消费者中,确保您:

using MyProject.Extensions

Ensure this method is in a static class of its own, separate class from the consuming DataRow.

namespace MyProject.Extensions
{
   public static class DataRowExtensions
   {
      //your extension methods
   }
}

In your consumer, ensure you're:

using MyProject.Extensions
感情洁癖 2024-11-02 22:31:10

我也有同样的问题。我的错误不是我错过了静态类或静态方法,而是我的扩展所在的类不是公共的。

I had this same issue. My mistake wasn't that I missed the static class or static method but that the class my extensions were on was not public.

梅倚清风 2024-11-02 22:31:10

除了漏用之外,还可能出现以下具有相同症状的情况:
如果您位于类本身的方法中(或者是其实现者/继承者),则需要使用 this

文件扩展名.cs:

namespace a 
{
    public static void AExt(this A a) {}
}

文件 user.cs

namespace a 
{

    class A {}

    class B : A 
    {
        this.AExt();
        // AExt() will not work without this.
    }
}

In addition to a missing using, following case with the same symptom may occur:
If you are inside a method of the class itself (or one if its implementors / inheritors), you need to make use of this.

File extension.cs:

namespace a 
{
    public static void AExt(this A a) {}
}

File user.cs

namespace a 
{

    class A {}

    class B : A 
    {
        this.AExt();
        // AExt() will not work without this.
    }
}
戏蝶舞 2024-11-02 22:31:10

如果您使用不同的命名空间,请尝试此代码。

namespace Extensions
{
    public static class StringExtensions
    {
        public static bool IsNumeric(this string inputString)
        {
            return decimal.TryParse(inputString, out decimal result);
        }
    }
}

namespace Business
{

    // add here other namespaces
    using Extensions;
    public static class Tools
    {
        public static bool Check(string inputString)
        {
            return inputString.IsNumeric();
        }
    }
}

If you are using different namespaces try this code.

namespace Extensions
{
    public static class StringExtensions
    {
        public static bool IsNumeric(this string inputString)
        {
            return decimal.TryParse(inputString, out decimal result);
        }
    }
}

namespace Business
{

    // add here other namespaces
    using Extensions;
    public static class Tools
    {
        public static bool Check(string inputString)
        {
            return inputString.IsNumeric();
        }
    }
}
慕巷 2024-11-02 22:31:10

我也有同样的问题。我的错误是参数类型不一样:定义的一个是Session,撤销的一个是ISession。

I had this same issue. My mistake is the argument type is not same: defined one is Session, revokded one is ISession.

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文