Проблема с общедоступными переменными C #

#c#

#c#

Вопрос:

Это вопрос новичка

 using System.name;

class class_name
{
    private className Obj;

    public class_name()
    {
    }

    public function()
    {
       Obj.function     <----- why i cant acesss the global varible here ??
    }
}
  

Когда я ввожу класс, доцент instellisence показывает любую вещь:-s

Ответ №1:

Я предполагаю, что произошла просто некоторая путаница с именами, и, function вы имели в виду class_name , или вместо class_name вы имели в виду className .

Чтобы получить доступ к методу таким образом, он должен быть объявлен как статический. В противном случае вы должны сначала создать экземпляр класса и получить доступ к методу через экземпляр.

ОТРЕДАКТИРУЙТЕ опубликованный вами код, он очень запутанный. Для меня следующее работает просто отлично.

 class Class1
{
    public void Function1()
    {
    }
}

class Class2
{
    private Class1 obj;

    public void Function2()
    {
        obj.Function1();
    }
}
  

Комментарии:

1. я уже создал глобальную, private className Obj; но не могу получить доступ из function , потому что она не статична?

2. Нет, вы создали член класса. И, опять же, если вы не объявляете элемент как статический, то вы должны создать экземпляр класса, чтобы получить доступ к этому элементу. Если вы хотите получить к ней доступ таким образом, объявите ее как private static className obj; .

3. Исправьте имена ваших символов. Это очень запутанно. Я думаю, вы не использовали одно и то же имя для ссылок на один и тот же символ.

4. private classsName Obj = new Classname(); но та же проблема!

5. Где className объявлено? Если вам нужна помощь, не могли бы вы просто уделить минутку и исправить свои ошибки?

Ответ №2:

Вы создали экземпляр этого класса?

Комментарии:

1. да! private className Obj;

2. @Sudantha Попробуйте использовать private className obj = new className();