我在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
。
编辑2
sample.cs
Form1.cs的
答案 0 :(得分:0)
方法是静态类private
还是protected
?这将导致该方法不可见。
答案 1 :(得分: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查看有关命名空间的文档。