Вот код. Пожалуйста, см. Мои вопросы внизу этого сообщения.Является ли это эффективным и лучше ли использовать инкапсуляцию?
public partial class myClass : Other.Class
{
long check1parameter = CurrentSession.CurrentFile.ID;
protected override void EnquiryLoaded(object sender, System.EventArgs e)
{
disableFields();
}
private void disableFields()
{
if (checkEverything()) {
EnquiryForm.GetControl("Status").Enabled = true;
}
}
public bool check1_method(long check1parameter) {
bool Check1 = false;
string stringToCheck = check1parameter.ToString();
if (stringToCheck.Contains("something")) {
Check1 = true;
}
return Check1;
}
public bool checkEverything() {
bool roleCheck = CurrentSession.CurrentUser.IsInRoles("RequiredRole");
bool check1 = check1_method(check1parameter);
bool checkEverything = false;
if (roleCheck && check1) {
checkEverything = true;
}
return checkEverything;
}
//other methods
}
код, чтобы проверить, что кто-то роль, а также, что строка содержит немного информации, а затем отключить поле. Я упростил это из фактического кода, чтобы наметить ключевые моменты. Хотя намерение состоит только в том, чтобы запускать эти простые проверки и отключать поле, я подумал, что лучше всего создавать отдельные методы для этих задач, чтобы впоследствии их можно было расширить.
Я получаю ошибку ссылки объекта с long check1parameter
, определяемой в этом положении. Это было в check1_method()
и работало правильно, но это то, что я хотел бы объявить один раз и использовать по нескольким областям, если это возможно.
Я также хочу передать параметры \ variables в check1_method
, а не объявлять их внутри него. Каков наилучший способ сделать check1parameter
доступным для всех методов в этом частичном классе? Он относится к другому классу, который каким-то образом связан с Other.Class
.
Мой главный вопрос: как я могу сделать это как можно более эффективным, и должен ли я использовать private
вместо public
где угодно? Я все еще очень новичок в C# и еще не совсем понял инкапсуляцию, поэтому, пожалуйста, успокойся! :)
'check1parameter' длинный, почему вы сравниваете его со строкой' 'something''? – Enfyve
Хотя он длинный, он иногда содержит текст и преобразуется в строку. Я проверяю, что «что-то» является частью строки (обратите внимание, что она преобразуется в строку чуть выше - «stringToCheck = check1parameter.ToString()» –
Длинный - это числовой тип, поэтому он может содержать только целое число, вы имеете в виду для использования 'char []' или 'byte []'? Или меня путают, что вы на самом деле не сравниваете строковый литерал '' Something '', но вы имеете в виду что-то в строках' '123456" ? – Enfyve