访问实例化的密封类公共成员

时间:2012-12-07 15:45:54

标签: c# .net sealed class-instance-variables

我正在尝试在我的程序中设置公共sealed课程,

事情是,......因为我还是新鲜的C# .net 尚未 开发人员,我发现这个问题有点困难... < / p>

至于问题中的问题,您可以直接跳到程序示例,或阅读以下背景:

DB_Schema是一个帮助namespace,我已创建,用于处理数据访问

(它包含tablesSP的名称..etc')

其中一个类(下面)处理Stored Procedures,并且这个类包含SP参数的名称

 
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 s

中  
using system...
using restOf.net
//just add your own as follows !

using shortClassName = myHelperNameSpace.MyIncrediblyUnnecessaryLongHelperClassName;

1 个答案:

答案 0 :(得分:3)

GetCPAReport 没有任何实例成员。 const成员隐式静态。在C#中,您现在无法通过引用访问静态成员。

你只想:

SP_Params.Add(new SqlParameter(SProc.GetCPAReport.IsFreelance, 1));

我个人也会GetCPAReport一个静态类。实例化它没有意义,因为它只包含常量...所以主动阻止它被实例化。