Подскажите, пожалуйста, почему в приведенном участке кода возникает ошибка?
using System;
class Ls {
public Ls() {
K.KV = 1; // !Ошибка!
}
}
class Ks {
int KV = 0;
public void P() {
Ls L = new Ls();
}
}
class Programma {
public static void Main() {
Ks K = new Ks();
K.P();
}
}
По-моему, это нелогично — L не видит сам себя. Мой знакомый говорит, что есть два выхода из этой ситуации —
использование ref или static. А если у меня новые "вложенные" классы появятся — Ms, Ns, Os
и т. д.? Всю эту ораву по ссылке передавать? А static я не хочу использовать потому, что при
увеличении объема программы обязательно появится несколько объектов классов Ks и Ls и к
каждому нужен "индивидуальный подход".
И еще проблема — у меня почему-то не устанавливается Хэлп к .NET Framework (винда — XP, IIS не установлен).
Программировать сложно. Но не программировать еще сложнее.
Re: Ошибка "the type or namespace name 'K' could not be foun
DS>using System; DS>class Ls { DS> public Ls() { DS> K.KV = 1; // !Ошибка! DS> } DS>}
DS>class Ks { DS> int KV = 0;
DS> public void P() { DS> Ls L = new Ls(); DS> } DS>}
DS>class Programma { DS> public static void Main() { DS> Ks K = new Ks(); DS> K.P(); DS> } DS>}
Ну вначале надо это К объявить.
К это класс или структура. Так. А где она объявлена?
Если она объявлена в другом модуле, то его надо подключить, а потом все таки объявить в классе это К.
То что меня не убивает, делает меня умнее.
Re: Ошибка "the type or namespace name 'K' could not be foun
От:
Аноним
Дата:
17.11.05 11:39
Оценка:
Здравствуйте, DSblizzard, Вы писали:
DS>Подскажите, пожалуйста, почему в приведенном участке кода возникает ошибка?
DS>using System; DS>class Ls { DS> public Ls() { DS> K.KV = 1; // !Ошибка! DS> } DS>}
DS>class Ks { DS> int KV = 0;
DS> public void P() { DS> Ls L = new Ls(); DS> } DS>}
DS>class Programma { DS> public static void Main() { DS> Ks K = new Ks(); DS> K.P(); DS> } DS>}
DS>По-моему, это нелогично — L не видит сам себя. Мой знакомый говорит, что есть два выхода из этой ситуации — DS>использование ref или static. А если у меня новые "вложенные" классы появятся — Ms, Ns, Os DS>и т. д.? Всю эту ораву по ссылке передавать? А static я не хочу использовать потому, что при DS>увеличении объема программы обязательно появится несколько объектов классов Ks и Ls и к DS>каждому нужен "индивидуальный подход".
DS> И еще проблема — у меня почему-то не устанавливается Хэлп к .NET Framework (винда — XP, IIS не установлен).
А почему ты думаешь что можно получить доступ к локальной переменной K, объявленной в методе Main класса Programma из конструктора класса Ls? Извини, но такого я еще не встречал.
Re[2]: Ошибка "the type or namespace name 'K' could not be f
От:
Аноним
Дата:
18.11.05 09:53
Оценка:
А>А почему ты думаешь что можно получить доступ к локальной переменной K, объявленной в методе Main класса Programma из конструктора класса Ls? Извини, но такого я еще не встречал.
Я просто исходил не из программистской, а из обычной житейской логики — K вызывает какой-то метод, из этого метода еще что-то вызывается, затем еще что-то и т. д. Но конечные элементы этой цепочки по идее должны знать, кто их вызывал (наподобие this, но с более глубоким уровнем возврата). Вообще-то оригинальный текст программы был совсем другой, я его максималько упростил. К — это игровой мир в моей программе, а L — это объект этого мира и объект должен был привязываться к координатам K, но использовать их в нужном месте я не смог. Теперь передаю по ссылке.
Re[3]: Ошибка "the type or namespace name 'K' could not be f
Здравствуйте, <Аноним>, Вы писали: А>Я просто исходил не из программистской, а из обычной житейской логики
Бросай ты это дело. Житейская логика в программировании только мешает.
В частности, простого способа узнать, кто именно тебя вызвал, нет. Сделано это намеренно — чтобы твой код был менее связным. Иначе простое перемещение строчки с вызовом из одного места в другое сломает программу.
1.1.4 stable rev. 510
Уйдемте отсюда, Румата! У вас слишком богатые погреба.
Re[3]: Ошибка "the type or namespace name 'K' could not be f
Здравствуйте, Аноним, Вы писали:
А>>А почему ты думаешь что можно получить доступ к локальной переменной K, объявленной в методе Main класса Programma из конструктора класса Ls? Извини, но такого я еще не встречал.
А>Я просто исходил не из программистской, а из обычной житейской логики — K вызывает какой-то метод, из этого метода еще что-то вызывается, затем еще что-то и т. д. Но конечные элементы этой цепочки по идее должны знать, кто их вызывал (наподобие this, но с более глубоким уровнем возврата). Вообще-то оригинальный текст программы был совсем другой, я его максималько упростил. К — это игровой мир в моей программе, а L — это объект этого мира и объект должен был привязываться к координатам K, но использовать их в нужном месте я не смог. Теперь передаю по ссылке.