• Познакомьтесь с пентестом веб-приложений на практике в нашем новом бесплатном курсе

    «Анализ защищенности веб-приложений»

    🔥 Записаться бесплатно!

  • CTF с учебными материалами Codeby Games

    Обучение кибербезопасности в игровой форме. Более 200 заданий по Active Directory, OSINT, PWN, Веб, Стеганографии, Реверс-инжинирингу, Форензике и Криптографии. Школа CTF с бесплатными курсами по всем категориям.

С# Элемент Matrix не существует в данном контексте

  • Автор темы borisblade
  • Дата начала
Статус
Закрыто для дальнейших ответов.
B

borisblade

В теле метода пытаюсь работать с внешней переменной массива - выдает ошибку. Как быть?
Переменная и класс находятся в одном пространстве имен, правда в разных файлах (переменная к тому же запихнута в void Main() )

byte[,] matrix = new byte[5, 15]; //'это переменная

if (matrix[sen, i]>0) ... //ее вызов в теле метода
 
L

LuMee

Я правильно понимаю, что matrix - это локальная переменная в методе Main()? Если так, то из другого метода она не видна (читаем про области видимости полей и переменных) и ее в этот метод надо передавать параметром либо делать полем класса (того же, в котором объявлен нужный метод).
 
B

borisblade

С этим разобрался - теперь новый вопрос:
Имеется ЕДИНСТВЕННЫЙ объект первого класса. (сюда помещаю глобальные переменные)
Необходимо в других классах работать с полями, свойствами и методами объекта первого класса. Но при объявлении второго класса среда естесственно не видит объектов первого класса - она тупо видит лишь сами классы без их полей.

Код:
	program.cs
...
class1 object1_of_class1 = new class1;
...

classes.cs
...
class class1
{
public byte var1;
}
class class2
{
public byte method1()
{
//не работает это:
return class1.var1;
//не работает и это:
return object1_of_class1 .var1;
}
}
...
шо делать?

ЗЫ Аргументы на вход методам не предлагать - методы работают с одними и теми же переменными - вызывать их с одними и теми же аргументами глупо.
 
L

LuMee

Аргументы на вход методам не предлагать - методы работают с одними и теми же переменными - вызывать их с одними и теми же аргументами глупо.
Если несколько методов класса используют один и тот же объект, то его надо просто сделать полем этого класса.
Что касается вашего кода, не понятно, где именно находятся строки:
Код:
class1 object1_of_class1 = new class1;
return class1.var1;
return object1_of_class1 .var1;
 
Статус
Закрыто для дальнейших ответов.
Мы в соцсетях:

Обучение наступательной кибербезопасности в игровой форме. Начать игру!