Форум программистов, компьютерный форум, киберфорум
C# для начинающих
Войти
Регистрация
Восстановить пароль
 
Рейтинг 4.77/13: Рейтинг темы: голосов - 13, средняя оценка - 4.77
0 / 0 / 1
Регистрация: 16.06.2011
Сообщений: 32
1

Почему публичную переменную не видно в других классах

27.03.2012, 16:43. Показов 2665. Ответов 3
Метки нет (Все метки)

Д.д. следующий возник вопрос. Почему в данном коде возникает ошибка в строке 15. "Элемент R1 не существует в тек. контексте"? Ведь с методом R1 используется модификатор доступа "public", который позволяет работать с методом из разных классов..

C#
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
 
   delegate string StrMod(string g);
   class delegateTest
    {
        public string R1(string s)
        {
           //код
            return s;
        }
     }
    class program
    {
        static void Main()
        {
            string phrase = Console.ReadLine();
            StrMod sm = new StrMod(R1);
            Console.WriteLine(sm(phrase));    
         }
}
__________________
Помощь в написании контрольных, курсовых и дипломных работ здесь
0
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
27.03.2012, 16:43
Ответы с готовыми решениями:

На вижу мой сайт на своем компе, на других компах его видно. Почему?
Прошу прощения, если не в том разделе, прошу перенести по адресу. Суть проблемы. Я создала сайт и...

почему глобальную переменную не видно, хотя она объяылена?
#include <vector> using namespace std; int min= 1; int main(){ min= 90; return 0; }

Почему не видно переменную, если она должна быть видимая?
Короче, вот код: import java.util.Random; import java.io.*; import...

Класс со ссылкой на публичную переменную
Здравствуйте, мне необходимо переслать переменную из основного потока в дочерний. Для этого , я...

3
Эксперт .NET
15447 / 11711 / 3075
Регистрация: 17.09.2011
Сообщений: 19,602
27.03.2012, 16:54 2
Потому что метод R1 является членом класса delegateTest, а использовать его вы пытаетесь как член класса Program.

Вот так будет работать:
C#
1
2
delegateTest test = new delegateTest();
StrMod sm = new StrMod(test.R1);
Вторую строчку можно даже так записывать:
C#
1
StrMod sm = test.R1;
1
0 / 0 / 1
Регистрация: 16.06.2011
Сообщений: 32
27.03.2012, 17:03  [ТС] 3
да, действительно, так работает.. но не понятно почему нужно конструировать test...
0
Эксперт .NET
15447 / 11711 / 3075
Регистрация: 17.09.2011
Сообщений: 19,602
27.03.2012, 17:05 4
Потому что метод R1 не помечен как static, а следовательно принадлежит экземпляру класса delegateTest. А так как он принадлежит экземпляру, без оного экземпляра метода просто не существует (грубо говоря, конечно), потому надо конструировать объект.
0
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
27.03.2012, 17:05

Ссылка на публичную переменную из модуля формы
Добрый день всем. Получил я тут от нашего вышестоящего начальства одну базу, со строгим указанием...

Как создать публичную переменную в классе javascript?
Мне нужно создать класс, но по какой то причине не могу понять как сделать публичные переменные....

Использование переменных в других классах
public class povremennaya : Form1 { public double stavka1; ...

Использование Context в других классах
У меня есть диалоговое окно, в котором я использую список. Требуется считать этот список с...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
4
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2021, vBulletin Solutions, Inc.