2012-11-28 21 views
0

我在Form1.cs中有部分类Form1。 我在Sample.cs文件中有ManagedIpHelper静态类。如何从部分类访问不同文件中的静态类

我想从Form1类中的方法访问该静态类中的方法。但是,当我使用这是显示不存在的当前上下文。 在这两个文件中名字空间都是一样的。我在Sample.cs文件中有另一个名为TcpRow的类。这是正常的public class,它可以从Form1的方法没有错误访问。

这是什么建议的解决方案?

编辑

我很抱歉。

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

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

EDIT 2

sample.cs

sample.cs

Form1.cs的

form1.cs

+0

您能告诉我们一些小小的代码吗? (例如。课程及其方法;其中方法的内容已被缩短/删除) –

+0

您可以发布TcpRow,ManagedIpHelper和Form1的名称空间声明吗?编辑了 –

+0

。请通过。 –

回答

0

其实这是在“解决方案项目”。这是问题。

0

是在静态类privateprotected的方法?这会导致该方法不可见。

+0

方法在静态类中是公共的。 –

0

您的静态类的名称空间可能与Form1.Cs的名称空间不同,您应该确保它们不同,以便将一条using语句添加到Form1.cs类的顶部。

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)) 
      { 

      } 
     } 
    } 
} 

Sample.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上的命名空间的文档。

+0

我已将命名空间更改为相同。他们都有相同的命名空间。另外我打电话给方法由ManagedIpHelper.Methodname() 但它显示错误。 –

+0

您还需要添加TcpRow的命名空间。 – nerdybeardo

+0

TcpRow和ManagedIpHelper在同一个文件sample.cs中。并且该文件与form1.cs具有相同的名称空间。 –

相关问题