Доступ к экземпляру закрытого публичного члена класса
Я пытаюсь создать общественность sealed
класс в моей программе,
дело в том... как я еще свеж C# .net
еще не разработчик, я нахожу эту проблему немного трудной...
Что касается проблемы в вопросе, вы можете перейти непосредственно к примеру программы или прочитать следующую информацию:
DB_Schema - помощник namespace
, я создал, чтобы иметь дело с доступом к данным
(это держит tables
А также SP
имена... и т. д.)
один из его классов (ниже) имеет дело с 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
для будущих желающих на эту тему, которые ищут ответ
как предложено нашим дорогим другом, здесь, в Stackru
если вам нужно сделать короткие имена для ваших классов, при использовании их для текущего проекта:
просто поместите это среди using
с вашего проекта
using system...
using restOf.net
//just add your own as follows !
using shortClassName = myHelperNameSpace.MyIncrediblyUnnecessaryLongHelperClassName;
1 ответ
GetCPAReport
не имеет никаких членов экземпляра. const
члены неявно статичны. В C# вы не можете получить доступ к статическим членам через ссылку, как вы пытаетесь в данный момент.
Вы просто хотите:
SP_Params.Add(new SqlParameter(SProc.GetCPAReport.IsFreelance, 1));
Лично я бы сделал GetCPAReport
статический класс тоже. Нет смысла его создавать, так как он содержит только константы... так что активно предотвращайте его создание.