Ошибка "the type or namespace name 'K' could not be found"
От: DSblizzard Россия  
Дата: 17.11.05 10:25
Оценка:
Подскажите, пожалуйста, почему в приведенном участке кода возникает ошибка?

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
От: mrozov  
Дата: 17.11.05 10:49
Оценка:
Извини, конечно, но что конкретно ты подразумеваешь под K в этой строчке

class Ls {
public Ls() {
K.KV = 1; // !Ошибка!
}


И почему тебя удивляет, что это K вызывает ошибку?
Re: Ошибка "the type or namespace name 'K' could not be foun
От: FunnyRabbit Россия  
Дата: 17.11.05 10:57
Оценка:
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
От: Sinclair Россия https://github.com/evilguest/
Дата: 22.11.05 04:33
Оценка: 1 (1)
Здравствуйте, <Аноним>, Вы писали:
А>Я просто исходил не из программистской, а из обычной житейской логики
Бросай ты это дело. Житейская логика в программировании только мешает.
В частности, простого способа узнать, кто именно тебя вызвал, нет. Сделано это намеренно — чтобы твой код был менее связным. Иначе простое перемещение строчки с вызовом из одного места в другое сломает программу.
1.1.4 stable rev. 510
Уйдемте отсюда, Румата! У вас слишком богатые погреба.
Re[3]: Ошибка "the type or namespace name 'K' could not be f
От: krasin Россия  
Дата: 22.11.05 04:38
Оценка:
Здравствуйте, Аноним, Вы писали:

А>>А почему ты думаешь что можно получить доступ к локальной переменной K, объявленной в методе Main класса Programma из конструктора класса Ls? Извини, но такого я еще не встречал.


А>Я просто исходил не из программистской, а из обычной житейской логики — K вызывает какой-то метод, из этого метода еще что-то вызывается, затем еще что-то и т. д. Но конечные элементы этой цепочки по идее должны знать, кто их вызывал (наподобие this, но с более глубоким уровнем возврата). Вообще-то оригинальный текст программы был совсем другой, я его максималько упростил. К — это игровой мир в моей программе, а L — это объект этого мира и объект должен был привязываться к координатам K, но использовать их в нужном месте я не смог. Теперь передаю по ссылке.


Нет, такой экстрим есть только в ECMAScript
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.