0

我在 Form1.cs 中有部分类 Form1 。我在 Sample.cs 文件中有 ManagedIpHelper 静态类。

我想从 Form1 类中的方法访问该静态类中的方法。但是当我使用它时,它显示在当前上下文中不存在。在这两个文件名命名空间是相同的。我TcpRow在 Sample.cs 文件中命名了另一个类。这是正常的public class,并且可以从 Form1 的方法中正确访问。

对此有什么建议的解决方案?

编辑

对不起。

TcpRow a; foreach (TcpRow tcpRow in ManagedIpHelper.GetExtendedTcpTable(true))

对于此代码,第一行有错误TcpRow could not be found(are you missing a using directive... ,第二行只有错误:ManagedIpHelper在当前上下文中不存在。

编辑 2

示例.cs

示例.cs

Form1.cs

form1.cs

4

2 回答 2

0

是静态类中的方法private还是protected?这将导致该方法不可见。

于 2012-11-28T10:11:50.083 回答
0

静态类的命名空间可能与 Form1.Cs 的命名空间不同,如果它们不同,则应确保在 Form1.cs 类的顶部添加 using 语句。

 using NetProject;

另外,要调用静态方法,你应该这样调用它。

 ManagedHelper.MethodName(....)

您的 sample.cs 文件应如下所示。此代码将编译,但建议您将类分成不同的文件。

Form1.cs

namespace NetProject
{
    using System;
    using System.Collections.Generic;

    public partial class Form1
    {
        public void SomeMethod()
        {
            TcpRow row;

            foreach (TcpRow tcpRow in ManagedIpHelper.GetExtendedTcpTable(true))
            {

            }
        }
    }
}

示例.cs

namespace NetProject
{
    using System;
    using System.Collections.Generic;

    public class TcpTable : IEnumerable<TcpRow>
    {
        public IEnumerator<TcpRow> GetEnumerator()
        {
            throw new NotImplementedException();
        }

        System.Collections.IEnumerator System.Collections.IEnumerable.GetEnumerator()
        {
            // You should implement this method
            throw new NotImplementedException();
        }
    }

    public class TcpRow
    {

    }

    public static class ManagedIpHelper
    {
        public static TcpTable GetExtendedTcpTable(bool value)
        {
            // You should implement this method
            return new TcpTable();
        }
    }
}

查看MSDN上有关命名空间的文档。

于 2012-11-28T10:12:30.460 回答