[英]Does a C# static class need to be instantiated?
我是新的.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;
如果您的靜態類在單獨的項目中定義,則在項目資源管理器中為其添加引用: http : //msdn.microsoft.com/zh-cn/library/wkze6zky( v=vs.80) .aspx ,然后添加名稱空間“使用”塊。
您可以通過刪除“ public static class”中的satic來嘗試此操作:
public class ConnectionHelper
{
public static SqlConnection GetConnection()
{
return new SqlConnection(ConfigurationManager.ConnectionStrings["connection"].ToString());
}
}
它可以工作,但是在添加一些非靜態屬性或方法之前,該實例無法執行任何操作。
類創建有狀態的對象-我們對其執行各種操作。 為此,我們必須聲明和實例化對象。
static
類/方法是無狀態的。 通常,我們只希望static
方法接收某些參數 , 執行操作並返回值/狀態 。
它們不應存儲我們需要類數據成員的任何中間結果。
因此,簡單實例化的static class
不會實例化!
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.