是否需要实例化一个C#静态类
本文关键字:一个 静态类 实例化 是否 | 更新日期: 2023-09-27 18:25:55
我是一名新的.NET开发人员。我想知道C#中的static
class
是否需要实例化?我为数据库连接创建了一个class
:
public static class ConnectionHelper
{
public static SqlConnection GetConnection()
{
return new SqlConnection(ConfigurationManager.ConnectionStrings["connection"].ToString());
}
}
我正在C#应用程序中实例化这个类,并得到以下错误:
名称"ConnectionHelper"在当前上下文中不存在
相关代码:
using (var cn = ConnectionHelper.GetConnection())
{
...
}
请告知。
否,static class
不需要实例化。它不能被实例化,这就是类声明中static
关键字的意义所在。
你也没有实例化它。您所做的是从一个静态类中调用一个静态方法。这很好。但是实例化类需要new
关键字。
您可能在文件的顶部缺少一个using
-指令来编译它。
我认为您缺少了一个命名空间。
将ConnectionHelper的命名空间添加到"using"-块中。例如:
using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using System.Windows.Forms;
using ConnectionHelperNamespace;
如果您的静态类是在单独的项目中定义的,请在project Explorer中添加对它的引用:http://msdn.microsoft.com/en-us/library/wkze6zky(v=vs.80).aspx然后将名称空间添加到"using"-块中。
您可以通过删除"public static class"中的satic来尝试:
public class ConnectionHelper
{
public static SqlConnection GetConnection()
{
return new SqlConnection(ConfigurationManager.ConnectionStrings["connection"].ToString());
}
}
它会起作用,但在添加一些非静态属性或方法之前,实例什么都做不了。
类创建有状态对象,我们在这些对象上执行各种操作。为此,我们必须声明和实例化对象。
static
类/方法是无状态的。大多数情况下,我们只希望static
方法接收某些参数,执行操作并返回值/状态。
它们不应该存储任何我们需要类数据成员的中间结果。
所以,简单地说,static class
不是实例化的!