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

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

borisblade

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

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

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

LuMee

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

borisblade

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

Код:
	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;
}
}
...
шо делать?

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

LuMee

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