[英]accessing an instantiated sealed class public member
我試圖instatiate公共sealed
在我的程序類,
事實是,...由於我仍然是C# .net
尚未開發的新人,因此我發現此問題有點困難...
對於“問題”中的問題,您可以直接跳至“程序”示例,或閱讀以下背景知識:
DB_Schema是我創建的一個助手namespace
,用於處理數據訪問
(它包含tables
和SP
的名稱..etc')
它的一個類(下面)處理Stored Procedures
,該類保存SPs參數的名稱
public sealed class SProc
{
public sealed class GetCPAReport
{
public const string RecordNum = "@RecordNum",
CPAColumnName = "@CPAColumn_Name",
Value = "@value",
IsFreelance = "@isFreelance";
}
}
通過SP進行數據訪問的方法內
private DataTable Get_RefTable_OfUsersBy(string DepartmetID)
{
SProc.GetCPAReport SProcGetCpa = SProc.GetCPAReport();
SP_Params.Add(new SqlParameter(SProcGetCpa.IsFreelance, 1));
}
嘗試訪問實例之一( SProcGetCpa
)成員是不可能的。
我可以使類SProc
+它的子類UpdateCPAReport
沒有 sealed
和...
但是,當我搜索問題“ 可以實例化密封類嗎?
很好..答案是肯定的 ,盡管試圖查找有關該錯誤的信息:
不能使用實例引用進行訪問; 用類型名稱代替它
沒有結果,也沒有訪問實例化sealed class
公共成員代碼的示例,至少不適合像我這樣的新鮮.net C#arpers
我想避免使用長行,並為表示存儲過程名稱的字符串自定義短名稱
代替
ParListEmployeeUsrs.SP_Params.Add(new SqlParameter(HTSPs.RobTC_CPA_Users_Names_JobPosition.IsFreelance, SelectedDepartmentID));
更新2
對於未來尋求這個問題的人
正如我們親愛的朋友所建議的那樣,在此處StackOverflow
如果您確實需要為您的班級做一個簡短的命名,那么在將它們用於當前對象時:
只需將這個中using
項目第
using system...
using restOf.net
//just add your own as follows !
using shortClassName = myHelperNameSpace.MyIncrediblyUnnecessaryLongHelperClassName;
GetCPAReport
沒有任何實例成員。 const
成員是隱式靜態的。 在C#中,您目前無法通過引用訪問靜態成員。
您只想要:
SP_Params.Add(new SqlParameter(SProc.GetCPAReport.IsFreelance, 1));
我個人也將GetCPAReport
靜態類。 實例化它沒有意義,因為它只包含常量...因此請積極地防止實例化它。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.