2

我是一名新的 .NET 开发人员。我想知道static classC# 中的 a 是否需要实例化?class我为数据库连接创建了一个:

public static class ConnectionHelper
{
    public static SqlConnection GetConnection()
    {
        return new SqlConnection(ConfigurationManager.ConnectionStrings["connection"].ToString());
    }
}

我在我的 C# 应用程序中实例化这个类并收到以下错误:

当前上下文中不存在名称“ConnectionHelper”

相关代码:

using (var cn = ConnectionHelper.GetConnection())
{
    ...
}

请指教。

4

4 回答 4

3

不, astatic class不需要实例化。它不能被实例化,这就是static类声明中关键字的意义所在。

您也没有实例化它。您所做的是从静态类调用静态方法。这很好。但是实例化一个类需要new关键字。

您可能using在文件顶部缺少 - 指令以使其编译。

于 2013-08-01T07:25:14.353 回答
1

我认为您缺少名称空间。

将 ConnectionHelper 的命名空间添加到“使用”块中。例如:

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;

如果您的静态类在单独的项目中定义,则在项目资源管理器中添加对它的引用:http: //msdn.microsoft.com/en-us/library/wkze6zky (v=vs.80).aspx ,然后添加命名空间到“使用”块。

于 2013-08-01T06:37:51.747 回答
0

您可以通过删除“公共静态类”中的 satic 来尝试:

public class ConnectionHelper
{
    public static SqlConnection GetConnection()
    {
        return new SqlConnection(ConfigurationManager.ConnectionStrings["connection"].ToString());
    }
}

它会起作用,但在添加一些非静态属性或方法之前,实例什么也做不了。

于 2013-08-01T06:48:35.973 回答
0

类创建有状态的对象——我们在其上执行各种操作。为此,我们必须声明和实例化对象。

static类/方法是无状态的。大多数情况下,我们只希望static方法接收某些参数执行操作返回值/状态

它们不应该存储我们需要类数据成员的任何中间结果。

所以,简单来说,static class就是没有实例化!

于 2013-08-01T07:56:53.540 回答