我创建了一个网站,希望有一个类来集中我在整个项目中经常使用的所有代码,例如,一个连接到数据库的方法。问题:在我创建此类之后,在App_Code文件夹中,如何在aspx.cs页面中使用它?我的意思是,应该参考一下吗?我应该通知添加命名空间吗?
谢谢!
答案 0 :(得分:0)
如果类包装在命名空间中,那么是的,您需要一个与您的命名空间匹配的using语句。例如,如果您的类包含在如下的命名空间中:
namespace My.Namespace
{
public class Foo
{
//Methods, properties, etc.
}
}
然后您想要使用该类,您需要添加
using My.Namespace;
到您要使用已定义的类的文件的顶部。然后你可以像你期望的那样使用你的课程:
Foo foo = new Foo(); //for a new instance
Foo.Bar(); //for a static method
当然,这是假设该类在同一个程序集中而您不想混淆adding it to the GAC。
或者,如果由于某种原因你不使用using语句,你可以使用该类的完全限定名称:
My.Namespace.Foo foo = new My.Namespace.Foo(); //for a new instance
My.Namespace.Foo.Bar(); //for a static method
如果你的命名空间有冲突,这是最有用的,例如你有
namespace My.Namespace
{
public class Foo
{
//Methods, properties, etc.
}
}
某处,
namespace MyOther.Namespace
{
public class Foo
{
//Methods, properties, etc.
}
}
在其他地方,但需要在同一范围内使用它们。
答案 1 :(得分:0)
将类文件创建为公共文件,您将能够访问项目任何部分的类文件。
namespace applicationName
{
public class DataManager
{
public static DataTable GetData(StringBuilder sql)
{
}
}
}
您可以从代码中访问DataManager。
DataManager.GetData(SQL);
答案 2 :(得分:0)
是的,将您的课程设置为namespace
,并考虑尽可能地创建课程static
,这样就可以在整个项目的代码中使用它,而无需实例化课程。这对于传入对象并使用它们的实用程序类很常见,但不需要将实际的实用程序方法作为类实例的一部分。
例如:
namespace My.Utilities
{
public class static ConnectionStringHelper
{
public static string GetConnectionString()
{
// Logic here to actually get connection string
return yourConnectionString;
}
}
}
现在,项目中的代码只需引用My.Utilities
命名空间,然后可以使用GetConnectionString()
方法,如下所示:
using My.Utilities;
string connString = ConnectionStringHelper.GetConnectionString();
答案 3 :(得分:0)
你可以通过多种方式实现这一目标。从技术上讲,您可以完全删除命名空间,并且您的代码对所有人都是免费的(可以从任何地方自然访问)我更喜欢亲自使用命名空间,但我似乎只是避免使用它们。
如果你的类Foo在Some.Namespace中,你可以这样引用它:
方式一:
Some.Namespace.Foo foo = new Some.Namespace.Foo()
方式二:使用“使用”命令
如果您的类位于Some.Namespace内,并且您不希望类名前面有所有垃圾,则可以添加:
using Some.Namespace;
到文件的顶部。
我可能会想念你所说的话。如果您正在谈论设置,您可以创建一个管理所有内容的集中式课程。这个班可以是一个单人。例如:
class MyClass
{
public static MyClas Singliton;
static MyClass()
{
Singliton = new MyClass();
}
public void someFunction()
{
}
}
这将创建和管理对您的类的单个引用,以便从那里管理所有内容(因此被称为“单例”)。因此,您可以通过以下方式访问它:
MyClass.Singliton.someFunction();
有一些方法可以保护您的singliton实例不被覆盖,但这是基本的想法。如果你想在不重新创建课程的情况下管理单个位置的东西,那么单身就是这样!