Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/265.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 无法在c中公开类#_C#_Asp.net_Vb.net - Fatal编程技术网

C# 无法在c中公开类#

C# 无法在c中公开类#,c#,asp.net,vb.net,C#,Asp.net,Vb.net,这似乎是一个初学者的问题,因为这是我的第一个大型c#项目转换。目前正在将一个大型项目从vb.net转换为c#,我非常了解c#语法,转换过程非常顺利。我的一个问题是-在vb.net中,我可以使用import语句公开一个类: Imports DataAccessLayer.DataAccess 假设DataAccess类中有一个名为GetDataTable的方法,我可以使用GetDataTable(params)调用它 现在,有了C#,我只能 Using DataAccessLayer; 并且不

这似乎是一个初学者的问题,因为这是我的第一个大型c#项目转换。目前正在将一个大型项目从vb.net转换为c#,我非常了解c#语法,转换过程非常顺利。我的一个问题是-在vb.net中,我可以使用import语句公开一个类:

Imports DataAccessLayer.DataAccess
假设DataAccess类中有一个名为GetDataTable的方法,我可以使用GetDataTable(params)调用它

现在,有了C#,我只能

Using DataAccessLayer;
并且不能公开DataAccess类,只有DataAccessLayer命名空间,并且必须执行DataAccess.GetDataTable(params),如果我必须在任何地方执行此操作,这显然会为项目添加大量额外代码

有没有办法公开类而不仅仅是名称空间?这是我的构造函数

namespace DataAccessLayer
{
    public class DataAccess
    {
    }
}
提前谢谢

如果您使用的是C#v6或更高版本,您可以这样:

using static Namespace.StaticClass;
因此,你可以为你的班级做同样的事情:

using static DataAccessLayer.DataAccess;
C#6支持这一点

using static DataAccessLayer.DataAccess;

我可以回答我自己的问题,对任何遇到这个问题的人来说——我曾经

using static DataAccessLayer.DataAccess;
添加静态使其工作。

根据此处,您只能访问类型的静态成员,而不必使用类型名称限定访问,如下所示:

使用静态系统控制台

using static System.Math;
class Program 
{ 
    static void Main() 
    { 
        WriteLine(Sqrt(3*3 + 4*4)); 
    } 
}
但是,您可以为类型创建别名:

using Project = PC.MyCompany.Project;

您是否尝试过使用DataAccessLayer.DataAccess执行
?是的,我的代码就是这样在vb.net中运行的,并且运行良好。它不允许我添加.DataAccess,说它不存在。没有类型标识符调用
GetDataTable
有什么好处?你还不如把它和私有/公共方法混淆一下你使用的是什么版本的C#?这是在Visual Studio 2015中吗?可能就是你要找的…是的,在我发布这篇文章后就发现了。转换到c#是一个全新的世界,就像我说的,我已经使用java和javascript很多年了,所以我对语法非常熟悉,但有些微妙的事情我却不知道